annotate Agendas/trunk/src/Agendas.Web/Scripts/jquery-ui.js @ 302:11dddcc9a862 tip

Historico de Eventos, no muestra bien la Url del Patrocinador.
author juanjose.montesdeocaarbos
date Tue, 14 Aug 2012 21:54:30 -0300
parents c62b77fc33f4
children
rev   line source
10
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1 /*!
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2 * Note: While Microsoft is not the author of this file, Microsoft is
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3 * offering you a license subject to the terms of the Microsoft Software
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4 * License Terms for Microsoft ASP.NET Model View Controller 3.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5 * Microsoft reserves all other rights. The notices below are provided
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6 * for informational purposes only and are not the license terms under
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7 * which Microsoft distributed this file.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9 * jQuery UI 1.8.7
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
12 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
13 * http://docs.jquery.com/UI
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
14 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
15 (function( $, undefined ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
16
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
17 // prevent duplicate loading
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
18 // this is only a problem because we proxy existing functions
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
19 // and we don't want to double proxy them
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
20 $.ui = $.ui || {};
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
21 if ( $.ui.version ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
22 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
23 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
24
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
25 $.extend( $.ui, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
26 version: "1.8.7",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
27
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
28 keyCode: {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
29 ALT: 18,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
30 BACKSPACE: 8,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
31 CAPS_LOCK: 20,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
32 COMMA: 188,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
33 COMMAND: 91,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
34 COMMAND_LEFT: 91, // COMMAND
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
35 COMMAND_RIGHT: 93,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
36 CONTROL: 17,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
37 DELETE: 46,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
38 DOWN: 40,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
39 END: 35,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
40 ENTER: 13,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
41 ESCAPE: 27,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
42 HOME: 36,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
43 INSERT: 45,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
44 LEFT: 37,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
45 MENU: 93, // COMMAND_RIGHT
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
46 NUMPAD_ADD: 107,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
47 NUMPAD_DECIMAL: 110,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
48 NUMPAD_DIVIDE: 111,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
49 NUMPAD_ENTER: 108,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
50 NUMPAD_MULTIPLY: 106,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
51 NUMPAD_SUBTRACT: 109,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
52 PAGE_DOWN: 34,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
53 PAGE_UP: 33,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
54 PERIOD: 190,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
55 RIGHT: 39,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
56 SHIFT: 16,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
57 SPACE: 32,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
58 TAB: 9,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
59 UP: 38,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
60 WINDOWS: 91 // COMMAND
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
61 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
62 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
63
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
64 // plugins
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
65 $.fn.extend({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
66 _focus: $.fn.focus,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
67 focus: function( delay, fn ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
68 return typeof delay === "number" ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
69 this.each(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
70 var elem = this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
71 setTimeout(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
72 $( elem ).focus();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
73 if ( fn ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
74 fn.call( elem );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
75 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
76 }, delay );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
77 }) :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
78 this._focus.apply( this, arguments );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
79 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
80
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
81 scrollParent: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
82 var scrollParent;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
83 if (($.browser.msie && (/(static|relative)/).test(this.css('position'))) || (/absolute/).test(this.css('position'))) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
84 scrollParent = this.parents().filter(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
85 return (/(relative|absolute|fixed)/).test($.curCSS(this,'position',1)) && (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
86 }).eq(0);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
87 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
88 scrollParent = this.parents().filter(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
89 return (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
90 }).eq(0);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
91 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
92
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
93 return (/fixed/).test(this.css('position')) || !scrollParent.length ? $(document) : scrollParent;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
94 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
95
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
96 zIndex: function( zIndex ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
97 if ( zIndex !== undefined ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
98 return this.css( "zIndex", zIndex );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
99 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
100
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
101 if ( this.length ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
102 var elem = $( this[ 0 ] ), position, value;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
103 while ( elem.length && elem[ 0 ] !== document ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
104 // Ignore z-index if position is set to a value where z-index is ignored by the browser
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
105 // This makes behavior of this function consistent across browsers
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
106 // WebKit always returns auto if the element is positioned
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
107 position = elem.css( "position" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
108 if ( position === "absolute" || position === "relative" || position === "fixed" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
109 // IE returns 0 when zIndex is not specified
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
110 // other browsers return a string
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
111 // we ignore the case of nested elements with an explicit value of 0
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
112 // <div style="z-index: -10;"><div style="z-index: 0;"></div></div>
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
113 value = parseInt( elem.css( "zIndex" ), 10 );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
114 if ( !isNaN( value ) && value !== 0 ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
115 return value;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
116 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
117 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
118 elem = elem.parent();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
119 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
120 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
121
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
122 return 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
123 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
124
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
125 disableSelection: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
126 return this.bind( ( $.support.selectstart ? "selectstart" : "mousedown" ) +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
127 ".ui-disableSelection", function( event ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
128 event.preventDefault();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
129 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
130 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
131
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
132 enableSelection: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
133 return this.unbind( ".ui-disableSelection" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
134 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
135 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
136
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
137 $.each( [ "Width", "Height" ], function( i, name ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
138 var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
139 type = name.toLowerCase(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
140 orig = {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
141 innerWidth: $.fn.innerWidth,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
142 innerHeight: $.fn.innerHeight,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
143 outerWidth: $.fn.outerWidth,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
144 outerHeight: $.fn.outerHeight
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
145 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
146
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
147 function reduce( elem, size, border, margin ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
148 $.each( side, function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
149 size -= parseFloat( $.curCSS( elem, "padding" + this, true) ) || 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
150 if ( border ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
151 size -= parseFloat( $.curCSS( elem, "border" + this + "Width", true) ) || 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
152 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
153 if ( margin ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
154 size -= parseFloat( $.curCSS( elem, "margin" + this, true) ) || 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
155 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
156 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
157 return size;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
158 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
159
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
160 $.fn[ "inner" + name ] = function( size ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
161 if ( size === undefined ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
162 return orig[ "inner" + name ].call( this );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
163 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
164
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
165 return this.each(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
166 $( this ).css( type, reduce( this, size ) + "px" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
167 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
168 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
169
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
170 $.fn[ "outer" + name] = function( size, margin ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
171 if ( typeof size !== "number" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
172 return orig[ "outer" + name ].call( this, size );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
173 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
174
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
175 return this.each(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
176 $( this).css( type, reduce( this, size, true, margin ) + "px" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
177 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
178 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
179 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
180
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
181 // selectors
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
182 function visible( element ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
183 return !$( element ).parents().andSelf().filter(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
184 return $.curCSS( this, "visibility" ) === "hidden" ||
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
185 $.expr.filters.hidden( this );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
186 }).length;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
187 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
188
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
189 $.extend( $.expr[ ":" ], {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
190 data: function( elem, i, match ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
191 return !!$.data( elem, match[ 3 ] );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
192 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
193
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
194 focusable: function( element ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
195 var nodeName = element.nodeName.toLowerCase(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
196 tabIndex = $.attr( element, "tabindex" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
197 if ( "area" === nodeName ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
198 var map = element.parentNode,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
199 mapName = map.name,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
200 img;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
201 if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
202 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
203 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
204 img = $( "img[usemap=#" + mapName + "]" )[0];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
205 return !!img && visible( img );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
206 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
207 return ( /input|select|textarea|button|object/.test( nodeName )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
208 ? !element.disabled
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
209 : "a" == nodeName
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
210 ? element.href || !isNaN( tabIndex )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
211 : !isNaN( tabIndex ))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
212 // the element and all of its ancestors must be visible
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
213 && visible( element );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
214 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
215
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
216 tabbable: function( element ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
217 var tabIndex = $.attr( element, "tabindex" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
218 return ( isNaN( tabIndex ) || tabIndex >= 0 ) && $( element ).is( ":focusable" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
219 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
220 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
221
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
222 // support
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
223 $(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
224 var body = document.body,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
225 div = body.appendChild( div = document.createElement( "div" ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
226
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
227 $.extend( div.style, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
228 minHeight: "100px",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
229 height: "auto",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
230 padding: 0,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
231 borderWidth: 0
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
232 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
233
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
234 $.support.minHeight = div.offsetHeight === 100;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
235 $.support.selectstart = "onselectstart" in div;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
236
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
237 // set display to none to avoid a layout bug in IE
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
238 // http://dev.jquery.com/ticket/4014
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
239 body.removeChild( div ).style.display = "none";
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
240 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
241
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
242
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
243
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
244
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
245
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
246 // deprecated
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
247 $.extend( $.ui, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
248 // $.ui.plugin is deprecated. Use the proxy pattern instead.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
249 plugin: {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
250 add: function( module, option, set ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
251 var proto = $.ui[ module ].prototype;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
252 for ( var i in set ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
253 proto.plugins[ i ] = proto.plugins[ i ] || [];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
254 proto.plugins[ i ].push( [ option, set[ i ] ] );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
255 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
256 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
257 call: function( instance, name, args ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
258 var set = instance.plugins[ name ];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
259 if ( !set || !instance.element[ 0 ].parentNode ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
260 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
261 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
262
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
263 for ( var i = 0; i < set.length; i++ ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
264 if ( instance.options[ set[ i ][ 0 ] ] ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
265 set[ i ][ 1 ].apply( instance.element, args );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
266 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
267 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
268 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
269 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
270
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
271 // will be deprecated when we switch to jQuery 1.4 - use jQuery.contains()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
272 contains: function( a, b ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
273 return document.compareDocumentPosition ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
274 a.compareDocumentPosition( b ) & 16 :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
275 a !== b && a.contains( b );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
276 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
277
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
278 // only used by resizable
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
279 hasScroll: function( el, a ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
280
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
281 //If overflow is hidden, the element might have extra content, but the user wants to hide it
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
282 if ( $( el ).css( "overflow" ) === "hidden") {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
283 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
284 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
285
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
286 var scroll = ( a && a === "left" ) ? "scrollLeft" : "scrollTop",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
287 has = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
288
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
289 if ( el[ scroll ] > 0 ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
290 return true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
291 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
292
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
293 // TODO: determine which cases actually cause this to happen
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
294 // if the element doesn't have the scroll set, see if it's possible to
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
295 // set the scroll
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
296 el[ scroll ] = 1;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
297 has = ( el[ scroll ] > 0 );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
298 el[ scroll ] = 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
299 return has;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
300 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
301
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
302 // these are odd functions, fix the API or move into individual plugins
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
303 isOverAxis: function( x, reference, size ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
304 //Determines when x coordinate is over "b" element axis
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
305 return ( x > reference ) && ( x < ( reference + size ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
306 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
307 isOver: function( y, x, top, left, height, width ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
308 //Determines when x, y coordinates is over "b" element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
309 return $.ui.isOverAxis( y, top, height ) && $.ui.isOverAxis( x, left, width );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
310 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
311 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
312
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
313 })( jQuery );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
314 /*!
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
315 * Note: While Microsoft is not the author of this file, Microsoft is
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
316 * offering you a license subject to the terms of the Microsoft Software
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
317 * License Terms for Microsoft ASP.NET Model View Controller 3.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
318 * Microsoft reserves all other rights. The notices below are provided
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
319 * for informational purposes only and are not the license terms under
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
320 * which Microsoft distributed this file.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
321 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
322 * jQuery UI Widget 1.8.7
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
323 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
324 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
325 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
326 * http://docs.jquery.com/UI/Widget
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
327 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
328 (function( $, undefined ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
329
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
330 // jQuery 1.4+
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
331 if ( $.cleanData ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
332 var _cleanData = $.cleanData;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
333 $.cleanData = function( elems ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
334 for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
335 $( elem ).triggerHandler( "remove" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
336 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
337 _cleanData( elems );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
338 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
339 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
340 var _remove = $.fn.remove;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
341 $.fn.remove = function( selector, keepData ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
342 return this.each(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
343 if ( !keepData ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
344 if ( !selector || $.filter( selector, [ this ] ).length ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
345 $( "*", this ).add( [ this ] ).each(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
346 $( this ).triggerHandler( "remove" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
347 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
348 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
349 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
350 return _remove.call( $(this), selector, keepData );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
351 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
352 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
353 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
354
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
355 $.widget = function( name, base, prototype ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
356 var namespace = name.split( "." )[ 0 ],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
357 fullName;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
358 name = name.split( "." )[ 1 ];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
359 fullName = namespace + "-" + name;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
360
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
361 if ( !prototype ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
362 prototype = base;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
363 base = $.Widget;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
364 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
365
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
366 // create selector for plugin
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
367 $.expr[ ":" ][ fullName ] = function( elem ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
368 return !!$.data( elem, name );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
369 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
370
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
371 $[ namespace ] = $[ namespace ] || {};
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
372 $[ namespace ][ name ] = function( options, element ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
373 // allow instantiation without initializing for simple inheritance
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
374 if ( arguments.length ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
375 this._createWidget( options, element );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
376 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
377 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
378
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
379 var basePrototype = new base();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
380 // we need to make the options hash a property directly on the new instance
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
381 // otherwise we'll modify the options hash on the prototype that we're
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
382 // inheriting from
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
383 // $.each( basePrototype, function( key, val ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
384 // if ( $.isPlainObject(val) ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
385 // basePrototype[ key ] = $.extend( {}, val );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
386 // }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
387 // });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
388 basePrototype.options = $.extend( true, {}, basePrototype.options );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
389 $[ namespace ][ name ].prototype = $.extend( true, basePrototype, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
390 namespace: namespace,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
391 widgetName: name,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
392 widgetEventPrefix: $[ namespace ][ name ].prototype.widgetEventPrefix || name,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
393 widgetBaseClass: fullName
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
394 }, prototype );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
395
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
396 $.widget.bridge( name, $[ namespace ][ name ] );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
397 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
398
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
399 $.widget.bridge = function( name, object ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
400 $.fn[ name ] = function( options ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
401 var isMethodCall = typeof options === "string",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
402 args = Array.prototype.slice.call( arguments, 1 ),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
403 returnValue = this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
404
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
405 // allow multiple hashes to be passed on init
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
406 options = !isMethodCall && args.length ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
407 $.extend.apply( null, [ true, options ].concat(args) ) :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
408 options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
409
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
410 // prevent calls to internal methods
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
411 if ( isMethodCall && options.charAt( 0 ) === "_" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
412 return returnValue;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
413 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
414
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
415 if ( isMethodCall ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
416 this.each(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
417 var instance = $.data( this, name ),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
418 methodValue = instance && $.isFunction( instance[options] ) ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
419 instance[ options ].apply( instance, args ) :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
420 instance;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
421 // TODO: add this back in 1.9 and use $.error() (see #5972)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
422 // if ( !instance ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
423 // throw "cannot call methods on " + name + " prior to initialization; " +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
424 // "attempted to call method '" + options + "'";
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
425 // }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
426 // if ( !$.isFunction( instance[options] ) ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
427 // throw "no such method '" + options + "' for " + name + " widget instance";
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
428 // }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
429 // var methodValue = instance[ options ].apply( instance, args );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
430 if ( methodValue !== instance && methodValue !== undefined ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
431 returnValue = methodValue;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
432 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
433 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
434 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
435 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
436 this.each(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
437 var instance = $.data( this, name );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
438 if ( instance ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
439 instance.option( options || {} )._init();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
440 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
441 $.data( this, name, new object( options, this ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
442 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
443 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
444 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
445
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
446 return returnValue;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
447 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
448 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
449
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
450 $.Widget = function( options, element ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
451 // allow instantiation without initializing for simple inheritance
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
452 if ( arguments.length ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
453 this._createWidget( options, element );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
454 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
455 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
456
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
457 $.Widget.prototype = {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
458 widgetName: "widget",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
459 widgetEventPrefix: "",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
460 options: {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
461 disabled: false
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
462 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
463 _createWidget: function( options, element ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
464 // $.widget.bridge stores the plugin instance, but we do it anyway
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
465 // so that it's stored even before the _create function runs
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
466 $.data( element, this.widgetName, this );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
467 this.element = $( element );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
468 this.options = $.extend( true, {},
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
469 this.options,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
470 this._getCreateOptions(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
471 options );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
472
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
473 var self = this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
474 this.element.bind( "remove." + this.widgetName, function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
475 self.destroy();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
476 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
477
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
478 this._create();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
479 this._trigger( "create" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
480 this._init();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
481 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
482 _getCreateOptions: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
483 return $.metadata && $.metadata.get( this.element[0] )[ this.widgetName ];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
484 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
485 _create: function() {},
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
486 _init: function() {},
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
487
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
488 destroy: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
489 this.element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
490 .unbind( "." + this.widgetName )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
491 .removeData( this.widgetName );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
492 this.widget()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
493 .unbind( "." + this.widgetName )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
494 .removeAttr( "aria-disabled" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
495 .removeClass(
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
496 this.widgetBaseClass + "-disabled " +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
497 "ui-state-disabled" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
498 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
499
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
500 widget: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
501 return this.element;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
502 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
503
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
504 option: function( key, value ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
505 var options = key;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
506
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
507 if ( arguments.length === 0 ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
508 // don't return a reference to the internal hash
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
509 return $.extend( {}, this.options );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
510 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
511
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
512 if (typeof key === "string" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
513 if ( value === undefined ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
514 return this.options[ key ];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
515 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
516 options = {};
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
517 options[ key ] = value;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
518 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
519
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
520 this._setOptions( options );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
521
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
522 return this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
523 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
524 _setOptions: function( options ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
525 var self = this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
526 $.each( options, function( key, value ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
527 self._setOption( key, value );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
528 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
529
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
530 return this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
531 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
532 _setOption: function( key, value ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
533 this.options[ key ] = value;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
534
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
535 if ( key === "disabled" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
536 this.widget()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
537 [ value ? "addClass" : "removeClass"](
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
538 this.widgetBaseClass + "-disabled" + " " +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
539 "ui-state-disabled" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
540 .attr( "aria-disabled", value );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
541 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
542
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
543 return this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
544 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
545
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
546 enable: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
547 return this._setOption( "disabled", false );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
548 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
549 disable: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
550 return this._setOption( "disabled", true );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
551 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
552
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
553 _trigger: function( type, event, data ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
554 var callback = this.options[ type ];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
555
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
556 event = $.Event( event );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
557 event.type = ( type === this.widgetEventPrefix ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
558 type :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
559 this.widgetEventPrefix + type ).toLowerCase();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
560 data = data || {};
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
561
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
562 // copy original event properties over to the new event
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
563 // this would happen if we could call $.event.fix instead of $.Event
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
564 // but we don't have a way to force an event to be fixed multiple times
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
565 if ( event.originalEvent ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
566 for ( var i = $.event.props.length, prop; i; ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
567 prop = $.event.props[ --i ];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
568 event[ prop ] = event.originalEvent[ prop ];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
569 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
570 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
571
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
572 this.element.trigger( event, data );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
573
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
574 return !( $.isFunction(callback) &&
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
575 callback.call( this.element[0], event, data ) === false ||
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
576 event.isDefaultPrevented() );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
577 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
578 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
579
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
580 })( jQuery );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
581 /*!
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
582 * Note: While Microsoft is not the author of this file, Microsoft is
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
583 * offering you a license subject to the terms of the Microsoft Software
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
584 * License Terms for Microsoft ASP.NET Model View Controller 3.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
585 * Microsoft reserves all other rights. The notices below are provided
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
586 * for informational purposes only and are not the license terms under
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
587 * which Microsoft distributed this file.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
588 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
589 * jQuery UI Mouse 1.8.7
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
590 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
591 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
592 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
593 * http://docs.jquery.com/UI/Mouse
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
594 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
595 * Depends:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
596 * jquery.ui.widget.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
597 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
598 (function( $, undefined ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
599
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
600 $.widget("ui.mouse", {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
601 options: {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
602 cancel: ':input,option',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
603 distance: 1,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
604 delay: 0
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
605 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
606 _mouseInit: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
607 var self = this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
608
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
609 this.element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
610 .bind('mousedown.'+this.widgetName, function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
611 return self._mouseDown(event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
612 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
613 .bind('click.'+this.widgetName, function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
614 if (true === $.data(event.target, self.widgetName + '.preventClickEvent')) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
615 $.removeData(event.target, self.widgetName + '.preventClickEvent');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
616 event.stopImmediatePropagation();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
617 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
618 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
619 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
620
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
621 this.started = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
622 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
623
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
624 // TODO: make sure destroying one instance of mouse doesn't mess with
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
625 // other instances of mouse
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
626 _mouseDestroy: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
627 this.element.unbind('.'+this.widgetName);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
628 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
629
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
630 _mouseDown: function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
631 // don't let more than one widget handle mouseStart
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
632 // TODO: figure out why we have to use originalEvent
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
633 event.originalEvent = event.originalEvent || {};
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
634 if (event.originalEvent.mouseHandled) { return; }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
635
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
636 // we may have missed mouseup (out of window)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
637 (this._mouseStarted && this._mouseUp(event));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
638
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
639 this._mouseDownEvent = event;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
640
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
641 var self = this,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
642 btnIsLeft = (event.which == 1),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
643 elIsCancel = (typeof this.options.cancel == "string" ? $(event.target).parents().add(event.target).filter(this.options.cancel).length : false);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
644 if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
645 return true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
646 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
647
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
648 this.mouseDelayMet = !this.options.delay;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
649 if (!this.mouseDelayMet) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
650 this._mouseDelayTimer = setTimeout(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
651 self.mouseDelayMet = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
652 }, this.options.delay);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
653 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
654
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
655 if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
656 this._mouseStarted = (this._mouseStart(event) !== false);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
657 if (!this._mouseStarted) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
658 event.preventDefault();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
659 return true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
660 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
661 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
662
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
663 // these delegates are required to keep context
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
664 this._mouseMoveDelegate = function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
665 return self._mouseMove(event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
666 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
667 this._mouseUpDelegate = function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
668 return self._mouseUp(event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
669 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
670 $(document)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
671 .bind('mousemove.'+this.widgetName, this._mouseMoveDelegate)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
672 .bind('mouseup.'+this.widgetName, this._mouseUpDelegate);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
673
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
674 event.preventDefault();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
675 event.originalEvent.mouseHandled = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
676 return true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
677 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
678
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
679 _mouseMove: function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
680 // IE mouseup check - mouseup happened when mouse was out of window
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
681 if ($.browser.msie && !(document.documentMode >= 9) && !event.button) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
682 return this._mouseUp(event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
683 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
684
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
685 if (this._mouseStarted) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
686 this._mouseDrag(event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
687 return event.preventDefault();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
688 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
689
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
690 if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
691 this._mouseStarted =
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
692 (this._mouseStart(this._mouseDownEvent, event) !== false);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
693 (this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
694 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
695
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
696 return !this._mouseStarted;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
697 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
698
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
699 _mouseUp: function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
700 $(document)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
701 .unbind('mousemove.'+this.widgetName, this._mouseMoveDelegate)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
702 .unbind('mouseup.'+this.widgetName, this._mouseUpDelegate);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
703
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
704 if (this._mouseStarted) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
705 this._mouseStarted = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
706
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
707 if (event.target == this._mouseDownEvent.target) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
708 $.data(event.target, this.widgetName + '.preventClickEvent', true);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
709 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
710
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
711 this._mouseStop(event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
712 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
713
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
714 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
715 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
716
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
717 _mouseDistanceMet: function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
718 return (Math.max(
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
719 Math.abs(this._mouseDownEvent.pageX - event.pageX),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
720 Math.abs(this._mouseDownEvent.pageY - event.pageY)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
721 ) >= this.options.distance
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
722 );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
723 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
724
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
725 _mouseDelayMet: function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
726 return this.mouseDelayMet;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
727 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
728
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
729 // These are placeholder methods, to be overriden by extending plugin
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
730 _mouseStart: function(event) {},
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
731 _mouseDrag: function(event) {},
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
732 _mouseStop: function(event) {},
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
733 _mouseCapture: function(event) { return true; }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
734 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
735
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
736 })(jQuery);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
737 /*
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
738 * Note: While Microsoft is not the author of this file, Microsoft is
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
739 * offering you a license subject to the terms of the Microsoft Software
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
740 * License Terms for Microsoft ASP.NET Model View Controller 3.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
741 * Microsoft reserves all other rights. The notices below are provided
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
742 * for informational purposes only and are not the license terms under
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
743 * which Microsoft distributed this file.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
744 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
745 * jQuery UI Draggable 1.8.7
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
746 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
747 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
748 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
749 * http://docs.jquery.com/UI/Draggables
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
750 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
751 * Depends:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
752 * jquery.ui.core.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
753 * jquery.ui.mouse.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
754 * jquery.ui.widget.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
755 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
756 (function( $, undefined ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
757
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
758 $.widget("ui.draggable", $.ui.mouse, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
759 widgetEventPrefix: "drag",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
760 options: {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
761 addClasses: true,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
762 appendTo: "parent",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
763 axis: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
764 connectToSortable: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
765 containment: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
766 cursor: "auto",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
767 cursorAt: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
768 grid: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
769 handle: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
770 helper: "original",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
771 iframeFix: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
772 opacity: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
773 refreshPositions: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
774 revert: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
775 revertDuration: 500,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
776 scope: "default",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
777 scroll: true,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
778 scrollSensitivity: 20,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
779 scrollSpeed: 20,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
780 snap: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
781 snapMode: "both",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
782 snapTolerance: 20,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
783 stack: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
784 zIndex: false
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
785 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
786 _create: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
787
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
788 if (this.options.helper == 'original' && !(/^(?:r|a|f)/).test(this.element.css("position")))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
789 this.element[0].style.position = 'relative';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
790
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
791 (this.options.addClasses && this.element.addClass("ui-draggable"));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
792 (this.options.disabled && this.element.addClass("ui-draggable-disabled"));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
793
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
794 this._mouseInit();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
795
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
796 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
797
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
798 destroy: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
799 if(!this.element.data('draggable')) return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
800 this.element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
801 .removeData("draggable")
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
802 .unbind(".draggable")
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
803 .removeClass("ui-draggable"
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
804 + " ui-draggable-dragging"
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
805 + " ui-draggable-disabled");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
806 this._mouseDestroy();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
807
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
808 return this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
809 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
810
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
811 _mouseCapture: function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
812
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
813 var o = this.options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
814
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
815 // among others, prevent a drag on a resizable-handle
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
816 if (this.helper || o.disabled || $(event.target).is('.ui-resizable-handle'))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
817 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
818
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
819 //Quit if we're not on a valid handle
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
820 this.handle = this._getHandle(event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
821 if (!this.handle)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
822 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
823
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
824 return true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
825
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
826 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
827
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
828 _mouseStart: function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
829
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
830 var o = this.options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
831
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
832 //Create and append the visible helper
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
833 this.helper = this._createHelper(event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
834
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
835 //Cache the helper size
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
836 this._cacheHelperProportions();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
837
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
838 //If ddmanager is used for droppables, set the global draggable
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
839 if($.ui.ddmanager)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
840 $.ui.ddmanager.current = this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
841
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
842 /*
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
843 * - Position generation -
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
844 * This block generates everything position related - it's the core of draggables.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
845 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
846
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
847 //Cache the margins of the original element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
848 this._cacheMargins();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
849
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
850 //Store the helper's css position
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
851 this.cssPosition = this.helper.css("position");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
852 this.scrollParent = this.helper.scrollParent();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
853
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
854 //The element's absolute position on the page minus margins
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
855 this.offset = this.positionAbs = this.element.offset();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
856 this.offset = {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
857 top: this.offset.top - this.margins.top,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
858 left: this.offset.left - this.margins.left
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
859 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
860
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
861 $.extend(this.offset, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
862 click: { //Where the click happened, relative to the element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
863 left: event.pageX - this.offset.left,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
864 top: event.pageY - this.offset.top
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
865 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
866 parent: this._getParentOffset(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
867 relative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
868 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
869
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
870 //Generate the original position
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
871 this.originalPosition = this.position = this._generatePosition(event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
872 this.originalPageX = event.pageX;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
873 this.originalPageY = event.pageY;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
874
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
875 //Adjust the mouse offset relative to the helper if 'cursorAt' is supplied
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
876 (o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
877
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
878 //Set a containment if given in the options
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
879 if(o.containment)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
880 this._setContainment();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
881
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
882 //Trigger event + callbacks
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
883 if(this._trigger("start", event) === false) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
884 this._clear();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
885 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
886 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
887
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
888 //Recache the helper size
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
889 this._cacheHelperProportions();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
890
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
891 //Prepare the droppable offsets
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
892 if ($.ui.ddmanager && !o.dropBehaviour)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
893 $.ui.ddmanager.prepareOffsets(this, event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
894
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
895 this.helper.addClass("ui-draggable-dragging");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
896 this._mouseDrag(event, true); //Execute the drag once - this causes the helper not to be visible before getting its correct position
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
897 return true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
898 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
899
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
900 _mouseDrag: function(event, noPropagation) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
901
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
902 //Compute the helpers position
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
903 this.position = this._generatePosition(event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
904 this.positionAbs = this._convertPositionTo("absolute");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
905
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
906 //Call plugins and callbacks and use the resulting position if something is returned
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
907 if (!noPropagation) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
908 var ui = this._uiHash();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
909 if(this._trigger('drag', event, ui) === false) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
910 this._mouseUp({});
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
911 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
912 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
913 this.position = ui.position;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
914 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
915
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
916 if(!this.options.axis || this.options.axis != "y") this.helper[0].style.left = this.position.left+'px';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
917 if(!this.options.axis || this.options.axis != "x") this.helper[0].style.top = this.position.top+'px';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
918 if($.ui.ddmanager) $.ui.ddmanager.drag(this, event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
919
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
920 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
921 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
922
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
923 _mouseStop: function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
924
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
925 //If we are using droppables, inform the manager about the drop
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
926 var dropped = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
927 if ($.ui.ddmanager && !this.options.dropBehaviour)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
928 dropped = $.ui.ddmanager.drop(this, event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
929
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
930 //if a drop comes from outside (a sortable)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
931 if(this.dropped) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
932 dropped = this.dropped;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
933 this.dropped = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
934 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
935
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
936 //if the original element is removed, don't bother to continue
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
937 if(!this.element[0] || !this.element[0].parentNode)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
938 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
939
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
940 if((this.options.revert == "invalid" && !dropped) || (this.options.revert == "valid" && dropped) || this.options.revert === true || ($.isFunction(this.options.revert) && this.options.revert.call(this.element, dropped))) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
941 var self = this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
942 $(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
943 if(self._trigger("stop", event) !== false) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
944 self._clear();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
945 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
946 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
947 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
948 if(this._trigger("stop", event) !== false) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
949 this._clear();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
950 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
951 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
952
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
953 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
954 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
955
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
956 cancel: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
957
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
958 if(this.helper.is(".ui-draggable-dragging")) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
959 this._mouseUp({});
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
960 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
961 this._clear();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
962 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
963
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
964 return this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
965
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
966 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
967
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
968 _getHandle: function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
969
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
970 var handle = !this.options.handle || !$(this.options.handle, this.element).length ? true : false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
971 $(this.options.handle, this.element)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
972 .find("*")
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
973 .andSelf()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
974 .each(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
975 if(this == event.target) handle = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
976 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
977
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
978 return handle;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
979
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
980 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
981
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
982 _createHelper: function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
983
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
984 var o = this.options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
985 var helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event])) : (o.helper == 'clone' ? this.element.clone() : this.element);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
986
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
987 if(!helper.parents('body').length)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
988 helper.appendTo((o.appendTo == 'parent' ? this.element[0].parentNode : o.appendTo));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
989
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
990 if(helper[0] != this.element[0] && !(/(fixed|absolute)/).test(helper.css("position")))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
991 helper.css("position", "absolute");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
992
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
993 return helper;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
994
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
995 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
996
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
997 _adjustOffsetFromHelper: function(obj) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
998 if (typeof obj == 'string') {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
999 obj = obj.split(' ');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1000 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1001 if ($.isArray(obj)) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1002 obj = {left: +obj[0], top: +obj[1] || 0};
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1003 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1004 if ('left' in obj) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1005 this.offset.click.left = obj.left + this.margins.left;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1006 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1007 if ('right' in obj) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1008 this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1009 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1010 if ('top' in obj) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1011 this.offset.click.top = obj.top + this.margins.top;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1012 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1013 if ('bottom' in obj) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1014 this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1015 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1016 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1017
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1018 _getParentOffset: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1019
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1020 //Get the offsetParent and cache its position
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1021 this.offsetParent = this.helper.offsetParent();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1022 var po = this.offsetParent.offset();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1023
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1024 // This is a special case where we need to modify a offset calculated on start, since the following happened:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1025 // 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1026 // 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1027 // the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1028 if(this.cssPosition == 'absolute' && this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1029 po.left += this.scrollParent.scrollLeft();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1030 po.top += this.scrollParent.scrollTop();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1031 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1032
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1033 if((this.offsetParent[0] == document.body) //This needs to be actually done for all browsers, since pageX/pageY includes this information
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1034 || (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == 'html' && $.browser.msie)) //Ugly IE fix
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1035 po = { top: 0, left: 0 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1036
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1037 return {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1038 top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) || 0),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1039 left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"),10) || 0)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1040 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1041
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1042 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1043
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1044 _getRelativeOffset: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1045
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1046 if(this.cssPosition == "relative") {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1047 var p = this.element.position();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1048 return {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1049 top: p.top - (parseInt(this.helper.css("top"),10) || 0) + this.scrollParent.scrollTop(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1050 left: p.left - (parseInt(this.helper.css("left"),10) || 0) + this.scrollParent.scrollLeft()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1051 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1052 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1053 return { top: 0, left: 0 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1054 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1055
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1056 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1057
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1058 _cacheMargins: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1059 this.margins = {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1060 left: (parseInt(this.element.css("marginLeft"),10) || 0),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1061 top: (parseInt(this.element.css("marginTop"),10) || 0)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1062 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1063 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1064
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1065 _cacheHelperProportions: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1066 this.helperProportions = {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1067 width: this.helper.outerWidth(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1068 height: this.helper.outerHeight()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1069 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1070 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1071
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1072 _setContainment: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1073
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1074 var o = this.options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1075 if(o.containment == 'parent') o.containment = this.helper[0].parentNode;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1076 if(o.containment == 'document' || o.containment == 'window') this.containment = [
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1077 (o.containment == 'document' ? 0 : $(window).scrollLeft()) - this.offset.relative.left - this.offset.parent.left,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1078 (o.containment == 'document' ? 0 : $(window).scrollTop()) - this.offset.relative.top - this.offset.parent.top,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1079 (o.containment == 'document' ? 0 : $(window).scrollLeft()) + $(o.containment == 'document' ? document : window).width() - this.helperProportions.width - this.margins.left,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1080 (o.containment == 'document' ? 0 : $(window).scrollTop()) + ($(o.containment == 'document' ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1081 ];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1082
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1083 if(!(/^(document|window|parent)$/).test(o.containment) && o.containment.constructor != Array) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1084 var ce = $(o.containment)[0]; if(!ce) return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1085 var co = $(o.containment).offset();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1086 var over = ($(ce).css("overflow") != 'hidden');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1087
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1088 this.containment = [
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1089 co.left + (parseInt($(ce).css("borderLeftWidth"),10) || 0) + (parseInt($(ce).css("paddingLeft"),10) || 0) - this.margins.left,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1090 co.top + (parseInt($(ce).css("borderTopWidth"),10) || 0) + (parseInt($(ce).css("paddingTop"),10) || 0) - this.margins.top,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1091 co.left+(over ? Math.max(ce.scrollWidth,ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"),10) || 0) - (parseInt($(ce).css("paddingRight"),10) || 0) - this.helperProportions.width - this.margins.left,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1092 co.top+(over ? Math.max(ce.scrollHeight,ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"),10) || 0) - (parseInt($(ce).css("paddingBottom"),10) || 0) - this.helperProportions.height - this.margins.top
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1093 ];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1094 } else if(o.containment.constructor == Array) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1095 this.containment = o.containment;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1096 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1097
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1098 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1099
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1100 _convertPositionTo: function(d, pos) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1101
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1102 if(!pos) pos = this.position;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1103 var mod = d == "absolute" ? 1 : -1;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1104 var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1105
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1106 return {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1107 top: (
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1108 pos.top // The absolute mouse position
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1109 + this.offset.relative.top * mod // Only for relative positioned nodes: Relative offset from element to offset parent
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1110 + this.offset.parent.top * mod // The offsetParent's offset without borders (offset + border)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1111 - ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1112 ),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1113 left: (
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1114 pos.left // The absolute mouse position
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1115 + this.offset.relative.left * mod // Only for relative positioned nodes: Relative offset from element to offset parent
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1116 + this.offset.parent.left * mod // The offsetParent's offset without borders (offset + border)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1117 - ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ) * mod)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1118 )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1119 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1120
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1121 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1122
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1123 _generatePosition: function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1124
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1125 var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1126 var pageX = event.pageX;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1127 var pageY = event.pageY;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1128
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1129 /*
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1130 * - Position constraining -
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1131 * Constrain the position to a mix of grid, containment.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1132 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1133
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1134 if(this.originalPosition) { //If we are not dragging yet, we won't check for options
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1135
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1136 if(this.containment) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1137 if(event.pageX - this.offset.click.left < this.containment[0]) pageX = this.containment[0] + this.offset.click.left;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1138 if(event.pageY - this.offset.click.top < this.containment[1]) pageY = this.containment[1] + this.offset.click.top;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1139 if(event.pageX - this.offset.click.left > this.containment[2]) pageX = this.containment[2] + this.offset.click.left;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1140 if(event.pageY - this.offset.click.top > this.containment[3]) pageY = this.containment[3] + this.offset.click.top;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1141 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1142
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1143 if(o.grid) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1144 var top = this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1145 pageY = this.containment ? (!(top - this.offset.click.top < this.containment[1] || top - this.offset.click.top > this.containment[3]) ? top : (!(top - this.offset.click.top < this.containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1146
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1147 var left = this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1148 pageX = this.containment ? (!(left - this.offset.click.left < this.containment[0] || left - this.offset.click.left > this.containment[2]) ? left : (!(left - this.offset.click.left < this.containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1149 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1150
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1151 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1152
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1153 return {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1154 top: (
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1155 pageY // The absolute mouse position
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1156 - this.offset.click.top // Click offset (relative to the element)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1157 - this.offset.relative.top // Only for relative positioned nodes: Relative offset from element to offset parent
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1158 - this.offset.parent.top // The offsetParent's offset without borders (offset + border)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1159 + ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1160 ),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1161 left: (
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1162 pageX // The absolute mouse position
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1163 - this.offset.click.left // Click offset (relative to the element)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1164 - this.offset.relative.left // Only for relative positioned nodes: Relative offset from element to offset parent
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1165 - this.offset.parent.left // The offsetParent's offset without borders (offset + border)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1166 + ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1167 )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1168 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1169
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1170 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1171
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1172 _clear: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1173 this.helper.removeClass("ui-draggable-dragging");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1174 if(this.helper[0] != this.element[0] && !this.cancelHelperRemoval) this.helper.remove();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1175 //if($.ui.ddmanager) $.ui.ddmanager.current = null;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1176 this.helper = null;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1177 this.cancelHelperRemoval = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1178 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1179
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1180 // From now on bulk stuff - mainly helpers
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1181
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1182 _trigger: function(type, event, ui) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1183 ui = ui || this._uiHash();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1184 $.ui.plugin.call(this, type, [event, ui]);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1185 if(type == "drag") this.positionAbs = this._convertPositionTo("absolute"); //The absolute position has to be recalculated after plugins
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1186 return $.Widget.prototype._trigger.call(this, type, event, ui);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1187 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1188
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1189 plugins: {},
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1190
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1191 _uiHash: function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1192 return {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1193 helper: this.helper,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1194 position: this.position,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1195 originalPosition: this.originalPosition,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1196 offset: this.positionAbs
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1197 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1198 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1199
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1200 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1201
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1202 $.extend($.ui.draggable, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1203 version: "1.8.7"
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1204 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1205
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1206 $.ui.plugin.add("draggable", "connectToSortable", {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1207 start: function(event, ui) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1208
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1209 var inst = $(this).data("draggable"), o = inst.options,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1210 uiSortable = $.extend({}, ui, { item: inst.element });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1211 inst.sortables = [];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1212 $(o.connectToSortable).each(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1213 var sortable = $.data(this, 'sortable');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1214 if (sortable && !sortable.options.disabled) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1215 inst.sortables.push({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1216 instance: sortable,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1217 shouldRevert: sortable.options.revert
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1218 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1219 sortable._refreshItems(); //Do a one-time refresh at start to refresh the containerCache
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1220 sortable._trigger("activate", event, uiSortable);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1221 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1222 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1223
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1224 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1225 stop: function(event, ui) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1226
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1227 //If we are still over the sortable, we fake the stop event of the sortable, but also remove helper
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1228 var inst = $(this).data("draggable"),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1229 uiSortable = $.extend({}, ui, { item: inst.element });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1230
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1231 $.each(inst.sortables, function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1232 if(this.instance.isOver) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1233
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1234 this.instance.isOver = 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1235
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1236 inst.cancelHelperRemoval = true; //Don't remove the helper in the draggable instance
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1237 this.instance.cancelHelperRemoval = false; //Remove it in the sortable instance (so sortable plugins like revert still work)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1238
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1239 //The sortable revert is supported, and we have to set a temporary dropped variable on the draggable to support revert: 'valid/invalid'
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1240 if(this.shouldRevert) this.instance.options.revert = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1241
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1242 //Trigger the stop of the sortable
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1243 this.instance._mouseStop(event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1244
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1245 this.instance.options.helper = this.instance.options._helper;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1246
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1247 //If the helper has been the original item, restore properties in the sortable
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1248 if(inst.options.helper == 'original')
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1249 this.instance.currentItem.css({ top: 'auto', left: 'auto' });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1250
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1251 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1252 this.instance.cancelHelperRemoval = false; //Remove the helper in the sortable instance
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1253 this.instance._trigger("deactivate", event, uiSortable);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1254 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1255
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1256 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1257
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1258 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1259 drag: function(event, ui) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1260
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1261 var inst = $(this).data("draggable"), self = this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1262
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1263 var checkPos = function(o) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1264 var dyClick = this.offset.click.top, dxClick = this.offset.click.left;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1265 var helperTop = this.positionAbs.top, helperLeft = this.positionAbs.left;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1266 var itemHeight = o.height, itemWidth = o.width;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1267 var itemTop = o.top, itemLeft = o.left;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1268
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1269 return $.ui.isOver(helperTop + dyClick, helperLeft + dxClick, itemTop, itemLeft, itemHeight, itemWidth);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1270 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1271
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1272 $.each(inst.sortables, function(i) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1273
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1274 //Copy over some variables to allow calling the sortable's native _intersectsWith
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1275 this.instance.positionAbs = inst.positionAbs;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1276 this.instance.helperProportions = inst.helperProportions;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1277 this.instance.offset.click = inst.offset.click;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1278
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1279 if(this.instance._intersectsWith(this.instance.containerCache)) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1280
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1281 //If it intersects, we use a little isOver variable and set it once, so our move-in stuff gets fired only once
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1282 if(!this.instance.isOver) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1283
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1284 this.instance.isOver = 1;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1285 //Now we fake the start of dragging for the sortable instance,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1286 //by cloning the list group item, appending it to the sortable and using it as inst.currentItem
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1287 //We can then fire the start event of the sortable with our passed browser event, and our own helper (so it doesn't create a new one)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1288 this.instance.currentItem = $(self).clone().appendTo(this.instance.element).data("sortable-item", true);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1289 this.instance.options._helper = this.instance.options.helper; //Store helper option to later restore it
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1290 this.instance.options.helper = function() { return ui.helper[0]; };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1291
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1292 event.target = this.instance.currentItem[0];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1293 this.instance._mouseCapture(event, true);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1294 this.instance._mouseStart(event, true, true);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1295
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1296 //Because the browser event is way off the new appended portlet, we modify a couple of variables to reflect the changes
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1297 this.instance.offset.click.top = inst.offset.click.top;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1298 this.instance.offset.click.left = inst.offset.click.left;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1299 this.instance.offset.parent.left -= inst.offset.parent.left - this.instance.offset.parent.left;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1300 this.instance.offset.parent.top -= inst.offset.parent.top - this.instance.offset.parent.top;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1301
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1302 inst._trigger("toSortable", event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1303 inst.dropped = this.instance.element; //draggable revert needs that
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1304 //hack so receive/update callbacks work (mostly)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1305 inst.currentItem = inst.element;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1306 this.instance.fromOutside = inst;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1307
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1308 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1309
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1310 //Provided we did all the previous steps, we can fire the drag event of the sortable on every draggable drag, when it intersects with the sortable
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1311 if(this.instance.currentItem) this.instance._mouseDrag(event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1312
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1313 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1314
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1315 //If it doesn't intersect with the sortable, and it intersected before,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1316 //we fake the drag stop of the sortable, but make sure it doesn't remove the helper by using cancelHelperRemoval
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1317 if(this.instance.isOver) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1318
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1319 this.instance.isOver = 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1320 this.instance.cancelHelperRemoval = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1321
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1322 //Prevent reverting on this forced stop
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1323 this.instance.options.revert = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1324
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1325 // The out event needs to be triggered independently
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1326 this.instance._trigger('out', event, this.instance._uiHash(this.instance));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1327
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1328 this.instance._mouseStop(event, true);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1329 this.instance.options.helper = this.instance.options._helper;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1330
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1331 //Now we remove our currentItem, the list group clone again, and the placeholder, and animate the helper back to it's original size
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1332 this.instance.currentItem.remove();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1333 if(this.instance.placeholder) this.instance.placeholder.remove();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1334
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1335 inst._trigger("fromSortable", event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1336 inst.dropped = false; //draggable revert needs that
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1337 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1338
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1339 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1340
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1341 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1342
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1343 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1344 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1345
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1346 $.ui.plugin.add("draggable", "cursor", {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1347 start: function(event, ui) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1348 var t = $('body'), o = $(this).data('draggable').options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1349 if (t.css("cursor")) o._cursor = t.css("cursor");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1350 t.css("cursor", o.cursor);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1351 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1352 stop: function(event, ui) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1353 var o = $(this).data('draggable').options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1354 if (o._cursor) $('body').css("cursor", o._cursor);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1355 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1356 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1357
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1358 $.ui.plugin.add("draggable", "iframeFix", {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1359 start: function(event, ui) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1360 var o = $(this).data('draggable').options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1361 $(o.iframeFix === true ? "iframe" : o.iframeFix).each(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1362 $('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>')
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1363 .css({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1364 width: this.offsetWidth+"px", height: this.offsetHeight+"px",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1365 position: "absolute", opacity: "0.001", zIndex: 1000
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1366 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1367 .css($(this).offset())
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1368 .appendTo("body");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1369 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1370 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1371 stop: function(event, ui) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1372 $("div.ui-draggable-iframeFix").each(function() { this.parentNode.removeChild(this); }); //Remove frame helpers
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1373 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1374 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1375
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1376 $.ui.plugin.add("draggable", "opacity", {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1377 start: function(event, ui) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1378 var t = $(ui.helper), o = $(this).data('draggable').options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1379 if(t.css("opacity")) o._opacity = t.css("opacity");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1380 t.css('opacity', o.opacity);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1381 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1382 stop: function(event, ui) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1383 var o = $(this).data('draggable').options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1384 if(o._opacity) $(ui.helper).css('opacity', o._opacity);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1385 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1386 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1387
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1388 $.ui.plugin.add("draggable", "scroll", {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1389 start: function(event, ui) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1390 var i = $(this).data("draggable");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1391 if(i.scrollParent[0] != document && i.scrollParent[0].tagName != 'HTML') i.overflowOffset = i.scrollParent.offset();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1392 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1393 drag: function(event, ui) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1394
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1395 var i = $(this).data("draggable"), o = i.options, scrolled = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1396
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1397 if(i.scrollParent[0] != document && i.scrollParent[0].tagName != 'HTML') {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1398
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1399 if(!o.axis || o.axis != 'x') {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1400 if((i.overflowOffset.top + i.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1401 i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop + o.scrollSpeed;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1402 else if(event.pageY - i.overflowOffset.top < o.scrollSensitivity)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1403 i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop - o.scrollSpeed;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1404 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1405
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1406 if(!o.axis || o.axis != 'y') {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1407 if((i.overflowOffset.left + i.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1408 i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft + o.scrollSpeed;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1409 else if(event.pageX - i.overflowOffset.left < o.scrollSensitivity)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1410 i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft - o.scrollSpeed;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1411 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1412
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1413 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1414
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1415 if(!o.axis || o.axis != 'x') {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1416 if(event.pageY - $(document).scrollTop() < o.scrollSensitivity)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1417 scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1418 else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1419 scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1420 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1421
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1422 if(!o.axis || o.axis != 'y') {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1423 if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1424 scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1425 else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1426 scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1427 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1428
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1429 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1430
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1431 if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1432 $.ui.ddmanager.prepareOffsets(i, event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1433
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1434 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1435 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1436
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1437 $.ui.plugin.add("draggable", "snap", {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1438 start: function(event, ui) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1439
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1440 var i = $(this).data("draggable"), o = i.options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1441 i.snapElements = [];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1442
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1443 $(o.snap.constructor != String ? ( o.snap.items || ':data(draggable)' ) : o.snap).each(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1444 var $t = $(this); var $o = $t.offset();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1445 if(this != i.element[0]) i.snapElements.push({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1446 item: this,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1447 width: $t.outerWidth(), height: $t.outerHeight(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1448 top: $o.top, left: $o.left
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1449 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1450 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1451
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1452 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1453 drag: function(event, ui) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1454
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1455 var inst = $(this).data("draggable"), o = inst.options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1456 var d = o.snapTolerance;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1457
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1458 var x1 = ui.offset.left, x2 = x1 + inst.helperProportions.width,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1459 y1 = ui.offset.top, y2 = y1 + inst.helperProportions.height;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1460
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1461 for (var i = inst.snapElements.length - 1; i >= 0; i--){
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1462
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1463 var l = inst.snapElements[i].left, r = l + inst.snapElements[i].width,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1464 t = inst.snapElements[i].top, b = t + inst.snapElements[i].height;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1465
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1466 //Yes, I know, this is insane ;)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1467 if(!((l-d < x1 && x1 < r+d && t-d < y1 && y1 < b+d) || (l-d < x1 && x1 < r+d && t-d < y2 && y2 < b+d) || (l-d < x2 && x2 < r+d && t-d < y1 && y1 < b+d) || (l-d < x2 && x2 < r+d && t-d < y2 && y2 < b+d))) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1468 if(inst.snapElements[i].snapping) (inst.options.snap.release && inst.options.snap.release.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item })));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1469 inst.snapElements[i].snapping = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1470 continue;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1471 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1472
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1473 if(o.snapMode != 'inner') {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1474 var ts = Math.abs(t - y2) <= d;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1475 var bs = Math.abs(b - y1) <= d;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1476 var ls = Math.abs(l - x2) <= d;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1477 var rs = Math.abs(r - x1) <= d;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1478 if(ts) ui.position.top = inst._convertPositionTo("relative", { top: t - inst.helperProportions.height, left: 0 }).top - inst.margins.top;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1479 if(bs) ui.position.top = inst._convertPositionTo("relative", { top: b, left: 0 }).top - inst.margins.top;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1480 if(ls) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l - inst.helperProportions.width }).left - inst.margins.left;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1481 if(rs) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r }).left - inst.margins.left;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1482 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1483
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1484 var first = (ts || bs || ls || rs);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1485
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1486 if(o.snapMode != 'outer') {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1487 var ts = Math.abs(t - y1) <= d;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1488 var bs = Math.abs(b - y2) <= d;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1489 var ls = Math.abs(l - x1) <= d;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1490 var rs = Math.abs(r - x2) <= d;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1491 if(ts) ui.position.top = inst._convertPositionTo("relative", { top: t, left: 0 }).top - inst.margins.top;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1492 if(bs) ui.position.top = inst._convertPositionTo("relative", { top: b - inst.helperProportions.height, left: 0 }).top - inst.margins.top;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1493 if(ls) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l }).left - inst.margins.left;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1494 if(rs) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r - inst.helperProportions.width }).left - inst.margins.left;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1495 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1496
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1497 if(!inst.snapElements[i].snapping && (ts || bs || ls || rs || first))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1498 (inst.options.snap.snap && inst.options.snap.snap.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item })));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1499 inst.snapElements[i].snapping = (ts || bs || ls || rs || first);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1500
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1501 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1502
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1503 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1504 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1505
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1506 $.ui.plugin.add("draggable", "stack", {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1507 start: function(event, ui) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1508
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1509 var o = $(this).data("draggable").options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1510
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1511 var group = $.makeArray($(o.stack)).sort(function(a,b) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1512 return (parseInt($(a).css("zIndex"),10) || 0) - (parseInt($(b).css("zIndex"),10) || 0);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1513 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1514 if (!group.length) { return; }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1515
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1516 var min = parseInt(group[0].style.zIndex) || 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1517 $(group).each(function(i) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1518 this.style.zIndex = min + i;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1519 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1520
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1521 this[0].style.zIndex = min + group.length;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1522
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1523 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1524 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1525
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1526 $.ui.plugin.add("draggable", "zIndex", {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1527 start: function(event, ui) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1528 var t = $(ui.helper), o = $(this).data("draggable").options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1529 if(t.css("zIndex")) o._zIndex = t.css("zIndex");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1530 t.css('zIndex', o.zIndex);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1531 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1532 stop: function(event, ui) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1533 var o = $(this).data("draggable").options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1534 if(o._zIndex) $(ui.helper).css('zIndex', o._zIndex);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1535 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1536 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1537
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1538 })(jQuery);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1539 /*
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1540 * Note: While Microsoft is not the author of this file, Microsoft is
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1541 * offering you a license subject to the terms of the Microsoft Software
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1542 * License Terms for Microsoft ASP.NET Model View Controller 3.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1543 * Microsoft reserves all other rights. The notices below are provided
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1544 * for informational purposes only and are not the license terms under
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1545 * which Microsoft distributed this file.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1546 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1547 * jQuery UI Droppable 1.8.7
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1548 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1549 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1550 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1551 * http://docs.jquery.com/UI/Droppables
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1552 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1553 * Depends:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1554 * jquery.ui.core.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1555 * jquery.ui.widget.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1556 * jquery.ui.mouse.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1557 * jquery.ui.draggable.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1558 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1559 (function( $, undefined ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1560
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1561 $.widget("ui.droppable", {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1562 widgetEventPrefix: "drop",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1563 options: {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1564 accept: '*',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1565 activeClass: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1566 addClasses: true,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1567 greedy: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1568 hoverClass: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1569 scope: 'default',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1570 tolerance: 'intersect'
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1571 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1572 _create: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1573
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1574 var o = this.options, accept = o.accept;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1575 this.isover = 0; this.isout = 1;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1576
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1577 this.accept = $.isFunction(accept) ? accept : function(d) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1578 return d.is(accept);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1579 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1580
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1581 //Store the droppable's proportions
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1582 this.proportions = { width: this.element[0].offsetWidth, height: this.element[0].offsetHeight };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1583
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1584 // Add the reference and positions to the manager
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1585 $.ui.ddmanager.droppables[o.scope] = $.ui.ddmanager.droppables[o.scope] || [];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1586 $.ui.ddmanager.droppables[o.scope].push(this);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1587
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1588 (o.addClasses && this.element.addClass("ui-droppable"));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1589
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1590 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1591
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1592 destroy: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1593 var drop = $.ui.ddmanager.droppables[this.options.scope];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1594 for ( var i = 0; i < drop.length; i++ )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1595 if ( drop[i] == this )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1596 drop.splice(i, 1);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1597
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1598 this.element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1599 .removeClass("ui-droppable ui-droppable-disabled")
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1600 .removeData("droppable")
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1601 .unbind(".droppable");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1602
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1603 return this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1604 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1605
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1606 _setOption: function(key, value) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1607
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1608 if(key == 'accept') {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1609 this.accept = $.isFunction(value) ? value : function(d) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1610 return d.is(value);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1611 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1612 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1613 $.Widget.prototype._setOption.apply(this, arguments);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1614 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1615
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1616 _activate: function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1617 var draggable = $.ui.ddmanager.current;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1618 if(this.options.activeClass) this.element.addClass(this.options.activeClass);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1619 (draggable && this._trigger('activate', event, this.ui(draggable)));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1620 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1621
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1622 _deactivate: function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1623 var draggable = $.ui.ddmanager.current;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1624 if(this.options.activeClass) this.element.removeClass(this.options.activeClass);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1625 (draggable && this._trigger('deactivate', event, this.ui(draggable)));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1626 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1627
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1628 _over: function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1629
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1630 var draggable = $.ui.ddmanager.current;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1631 if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return; // Bail if draggable and droppable are same element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1632
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1633 if (this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1634 if(this.options.hoverClass) this.element.addClass(this.options.hoverClass);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1635 this._trigger('over', event, this.ui(draggable));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1636 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1637
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1638 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1639
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1640 _out: function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1641
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1642 var draggable = $.ui.ddmanager.current;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1643 if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return; // Bail if draggable and droppable are same element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1644
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1645 if (this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1646 if(this.options.hoverClass) this.element.removeClass(this.options.hoverClass);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1647 this._trigger('out', event, this.ui(draggable));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1648 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1649
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1650 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1651
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1652 _drop: function(event,custom) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1653
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1654 var draggable = custom || $.ui.ddmanager.current;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1655 if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return false; // Bail if draggable and droppable are same element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1656
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1657 var childrenIntersection = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1658 this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1659 var inst = $.data(this, 'droppable');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1660 if(
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1661 inst.options.greedy
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1662 && !inst.options.disabled
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1663 && inst.options.scope == draggable.options.scope
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1664 && inst.accept.call(inst.element[0], (draggable.currentItem || draggable.element))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1665 && $.ui.intersect(draggable, $.extend(inst, { offset: inst.element.offset() }), inst.options.tolerance)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1666 ) { childrenIntersection = true; return false; }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1667 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1668 if(childrenIntersection) return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1669
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1670 if(this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1671 if(this.options.activeClass) this.element.removeClass(this.options.activeClass);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1672 if(this.options.hoverClass) this.element.removeClass(this.options.hoverClass);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1673 this._trigger('drop', event, this.ui(draggable));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1674 return this.element;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1675 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1676
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1677 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1678
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1679 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1680
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1681 ui: function(c) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1682 return {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1683 draggable: (c.currentItem || c.element),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1684 helper: c.helper,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1685 position: c.position,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1686 offset: c.positionAbs
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1687 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1688 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1689
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1690 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1691
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1692 $.extend($.ui.droppable, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1693 version: "1.8.7"
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1694 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1695
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1696 $.ui.intersect = function(draggable, droppable, toleranceMode) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1697
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1698 if (!droppable.offset) return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1699
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1700 var x1 = (draggable.positionAbs || draggable.position.absolute).left, x2 = x1 + draggable.helperProportions.width,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1701 y1 = (draggable.positionAbs || draggable.position.absolute).top, y2 = y1 + draggable.helperProportions.height;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1702 var l = droppable.offset.left, r = l + droppable.proportions.width,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1703 t = droppable.offset.top, b = t + droppable.proportions.height;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1704
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1705 switch (toleranceMode) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1706 case 'fit':
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1707 return (l <= x1 && x2 <= r
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1708 && t <= y1 && y2 <= b);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1709 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1710 case 'intersect':
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1711 return (l < x1 + (draggable.helperProportions.width / 2) // Right Half
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1712 && x2 - (draggable.helperProportions.width / 2) < r // Left Half
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1713 && t < y1 + (draggable.helperProportions.height / 2) // Bottom Half
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1714 && y2 - (draggable.helperProportions.height / 2) < b ); // Top Half
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1715 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1716 case 'pointer':
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1717 var draggableLeft = ((draggable.positionAbs || draggable.position.absolute).left + (draggable.clickOffset || draggable.offset.click).left),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1718 draggableTop = ((draggable.positionAbs || draggable.position.absolute).top + (draggable.clickOffset || draggable.offset.click).top),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1719 isOver = $.ui.isOver(draggableTop, draggableLeft, t, l, droppable.proportions.height, droppable.proportions.width);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1720 return isOver;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1721 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1722 case 'touch':
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1723 return (
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1724 (y1 >= t && y1 <= b) || // Top edge touching
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1725 (y2 >= t && y2 <= b) || // Bottom edge touching
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1726 (y1 < t && y2 > b) // Surrounded vertically
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1727 ) && (
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1728 (x1 >= l && x1 <= r) || // Left edge touching
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1729 (x2 >= l && x2 <= r) || // Right edge touching
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1730 (x1 < l && x2 > r) // Surrounded horizontally
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1731 );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1732 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1733 default:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1734 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1735 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1736 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1737
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1738 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1739
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1740 /*
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1741 This manager tracks offsets of draggables and droppables
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1742 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1743 $.ui.ddmanager = {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1744 current: null,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1745 droppables: { 'default': [] },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1746 prepareOffsets: function(t, event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1747
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1748 var m = $.ui.ddmanager.droppables[t.options.scope] || [];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1749 var type = event ? event.type : null; // workaround for #2317
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1750 var list = (t.currentItem || t.element).find(":data(droppable)").andSelf();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1751
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1752 droppablesLoop: for (var i = 0; i < m.length; i++) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1753
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1754 if(m[i].options.disabled || (t && !m[i].accept.call(m[i].element[0],(t.currentItem || t.element)))) continue; //No disabled and non-accepted
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1755 for (var j=0; j < list.length; j++) { if(list[j] == m[i].element[0]) { m[i].proportions.height = 0; continue droppablesLoop; } }; //Filter out elements in the current dragged item
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1756 m[i].visible = m[i].element.css("display") != "none"; if(!m[i].visible) continue; //If the element is not visible, continue
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1757
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1758 m[i].offset = m[i].element.offset();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1759 m[i].proportions = { width: m[i].element[0].offsetWidth, height: m[i].element[0].offsetHeight };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1760
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1761 if(type == "mousedown") m[i]._activate.call(m[i], event); //Activate the droppable if used directly from draggables
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1762
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1763 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1764
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1765 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1766 drop: function(draggable, event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1767
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1768 var dropped = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1769 $.each($.ui.ddmanager.droppables[draggable.options.scope] || [], function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1770
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1771 if(!this.options) return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1772 if (!this.options.disabled && this.visible && $.ui.intersect(draggable, this, this.options.tolerance))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1773 dropped = dropped || this._drop.call(this, event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1774
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1775 if (!this.options.disabled && this.visible && this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1776 this.isout = 1; this.isover = 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1777 this._deactivate.call(this, event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1778 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1779
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1780 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1781 return dropped;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1782
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1783 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1784 drag: function(draggable, event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1785
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1786 //If you have a highly dynamic page, you might try this option. It renders positions every time you move the mouse.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1787 if(draggable.options.refreshPositions) $.ui.ddmanager.prepareOffsets(draggable, event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1788
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1789 //Run through all droppables and check their positions based on specific tolerance options
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1790 $.each($.ui.ddmanager.droppables[draggable.options.scope] || [], function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1791
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1792 if(this.options.disabled || this.greedyChild || !this.visible) return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1793 var intersects = $.ui.intersect(draggable, this, this.options.tolerance);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1794
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1795 var c = !intersects && this.isover == 1 ? 'isout' : (intersects && this.isover == 0 ? 'isover' : null);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1796 if(!c) return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1797
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1798 var parentInstance;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1799 if (this.options.greedy) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1800 var parent = this.element.parents(':data(droppable):eq(0)');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1801 if (parent.length) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1802 parentInstance = $.data(parent[0], 'droppable');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1803 parentInstance.greedyChild = (c == 'isover' ? 1 : 0);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1804 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1805 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1806
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1807 // we just moved into a greedy child
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1808 if (parentInstance && c == 'isover') {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1809 parentInstance['isover'] = 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1810 parentInstance['isout'] = 1;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1811 parentInstance._out.call(parentInstance, event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1812 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1813
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1814 this[c] = 1; this[c == 'isout' ? 'isover' : 'isout'] = 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1815 this[c == "isover" ? "_over" : "_out"].call(this, event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1816
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1817 // we just moved out of a greedy child
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1818 if (parentInstance && c == 'isout') {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1819 parentInstance['isout'] = 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1820 parentInstance['isover'] = 1;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1821 parentInstance._over.call(parentInstance, event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1822 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1823 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1824
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1825 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1826 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1827
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1828 })(jQuery);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1829 /*
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1830 * Note: While Microsoft is not the author of this file, Microsoft is
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1831 * offering you a license subject to the terms of the Microsoft Software
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1832 * License Terms for Microsoft ASP.NET Model View Controller 3.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1833 * Microsoft reserves all other rights. The notices below are provided
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1834 * for informational purposes only and are not the license terms under
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1835 * which Microsoft distributed this file.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1836 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1837 * jQuery UI Resizable 1.8.7
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1838 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1839 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1840 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1841 * http://docs.jquery.com/UI/Resizables
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1842 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1843 * Depends:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1844 * jquery.ui.core.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1845 * jquery.ui.mouse.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1846 * jquery.ui.widget.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1847 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1848 (function( $, undefined ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1849
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1850 $.widget("ui.resizable", $.ui.mouse, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1851 widgetEventPrefix: "resize",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1852 options: {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1853 alsoResize: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1854 animate: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1855 animateDuration: "slow",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1856 animateEasing: "swing",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1857 aspectRatio: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1858 autoHide: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1859 containment: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1860 ghost: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1861 grid: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1862 handles: "e,s,se",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1863 helper: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1864 maxHeight: null,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1865 maxWidth: null,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1866 minHeight: 10,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1867 minWidth: 10,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1868 zIndex: 1000
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1869 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1870 _create: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1871
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1872 var self = this, o = this.options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1873 this.element.addClass("ui-resizable");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1874
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1875 $.extend(this, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1876 _aspectRatio: !!(o.aspectRatio),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1877 aspectRatio: o.aspectRatio,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1878 originalElement: this.element,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1879 _proportionallyResizeElements: [],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1880 _helper: o.helper || o.ghost || o.animate ? o.helper || 'ui-resizable-helper' : null
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1881 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1882
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1883 //Wrap the element if it cannot hold child nodes
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1884 if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1885
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1886 //Opera fix for relative positioning
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1887 if (/relative/.test(this.element.css('position')) && $.browser.opera)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1888 this.element.css({ position: 'relative', top: 'auto', left: 'auto' });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1889
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1890 //Create a wrapper element and set the wrapper to the new current internal element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1891 this.element.wrap(
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1892 $('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1893 position: this.element.css('position'),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1894 width: this.element.outerWidth(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1895 height: this.element.outerHeight(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1896 top: this.element.css('top'),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1897 left: this.element.css('left')
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1898 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1899 );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1900
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1901 //Overwrite the original this.element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1902 this.element = this.element.parent().data(
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1903 "resizable", this.element.data('resizable')
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1904 );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1905
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1906 this.elementIsWrapper = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1907
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1908 //Move margins to the wrapper
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1909 this.element.css({ marginLeft: this.originalElement.css("marginLeft"), marginTop: this.originalElement.css("marginTop"), marginRight: this.originalElement.css("marginRight"), marginBottom: this.originalElement.css("marginBottom") });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1910 this.originalElement.css({ marginLeft: 0, marginTop: 0, marginRight: 0, marginBottom: 0});
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1911
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1912 //Prevent Safari textarea resize
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1913 this.originalResizeStyle = this.originalElement.css('resize');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1914 this.originalElement.css('resize', 'none');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1915
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1916 //Push the actual element to our proportionallyResize internal array
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1917 this._proportionallyResizeElements.push(this.originalElement.css({ position: 'static', zoom: 1, display: 'block' }));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1918
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1919 // avoid IE jump (hard set the margin)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1920 this.originalElement.css({ margin: this.originalElement.css('margin') });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1921
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1922 // fix handlers offset
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1923 this._proportionallyResize();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1924
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1925 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1926
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1927 this.handles = o.handles || (!$('.ui-resizable-handle', this.element).length ? "e,s,se" : { n: '.ui-resizable-n', e: '.ui-resizable-e', s: '.ui-resizable-s', w: '.ui-resizable-w', se: '.ui-resizable-se', sw: '.ui-resizable-sw', ne: '.ui-resizable-ne', nw: '.ui-resizable-nw' });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1928 if(this.handles.constructor == String) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1929
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1930 if(this.handles == 'all') this.handles = 'n,e,s,w,se,sw,ne,nw';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1931 var n = this.handles.split(","); this.handles = {};
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1932
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1933 for(var i = 0; i < n.length; i++) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1934
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1935 var handle = $.trim(n[i]), hname = 'ui-resizable-'+handle;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1936 var axis = $('<div class="ui-resizable-handle ' + hname + '"></div>');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1937
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1938 // increase zIndex of sw, se, ne, nw axis
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1939 //TODO : this modifies original option
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1940 if(/sw|se|ne|nw/.test(handle)) axis.css({ zIndex: ++o.zIndex });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1941
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1942 //TODO : What's going on here?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1943 if ('se' == handle) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1944 axis.addClass('ui-icon ui-icon-gripsmall-diagonal-se');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1945 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1946
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1947 //Insert into internal handles object and append to element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1948 this.handles[handle] = '.ui-resizable-'+handle;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1949 this.element.append(axis);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1950 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1951
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1952 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1953
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1954 this._renderAxis = function(target) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1955
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1956 target = target || this.element;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1957
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1958 for(var i in this.handles) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1959
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1960 if(this.handles[i].constructor == String)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1961 this.handles[i] = $(this.handles[i], this.element).show();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1962
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1963 //Apply pad to wrapper element, needed to fix axis position (textarea, inputs, scrolls)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1964 if (this.elementIsWrapper && this.originalElement[0].nodeName.match(/textarea|input|select|button/i)) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1965
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1966 var axis = $(this.handles[i], this.element), padWrapper = 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1967
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1968 //Checking the correct pad and border
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1969 padWrapper = /sw|ne|nw|se|n|s/.test(i) ? axis.outerHeight() : axis.outerWidth();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1970
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1971 //The padding type i have to apply...
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1972 var padPos = [ 'padding',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1973 /ne|nw|n/.test(i) ? 'Top' :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1974 /se|sw|s/.test(i) ? 'Bottom' :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1975 /^e$/.test(i) ? 'Right' : 'Left' ].join("");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1976
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1977 target.css(padPos, padWrapper);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1978
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1979 this._proportionallyResize();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1980
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1981 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1982
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1983 //TODO: What's that good for? There's not anything to be executed left
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1984 if(!$(this.handles[i]).length)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1985 continue;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1986
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1987 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1988 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1989
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1990 //TODO: make renderAxis a prototype function
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1991 this._renderAxis(this.element);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1992
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1993 this._handles = $('.ui-resizable-handle', this.element)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1994 .disableSelection();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1995
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1996 //Matching axis name
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1997 this._handles.mouseover(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1998 if (!self.resizing) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
1999 if (this.className)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2000 var axis = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2001 //Axis, default = se
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2002 self.axis = axis && axis[1] ? axis[1] : 'se';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2003 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2004 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2005
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2006 //If we want to auto hide the elements
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2007 if (o.autoHide) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2008 this._handles.hide();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2009 $(this.element)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2010 .addClass("ui-resizable-autohide")
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2011 .hover(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2012 $(this).removeClass("ui-resizable-autohide");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2013 self._handles.show();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2014 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2015 function(){
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2016 if (!self.resizing) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2017 $(this).addClass("ui-resizable-autohide");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2018 self._handles.hide();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2019 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2020 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2021 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2022
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2023 //Initialize the mouse interaction
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2024 this._mouseInit();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2025
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2026 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2027
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2028 destroy: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2029
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2030 this._mouseDestroy();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2031
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2032 var _destroy = function(exp) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2033 $(exp).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing")
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2034 .removeData("resizable").unbind(".resizable").find('.ui-resizable-handle').remove();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2035 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2036
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2037 //TODO: Unwrap at same DOM position
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2038 if (this.elementIsWrapper) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2039 _destroy(this.element);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2040 var wrapper = this.element;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2041 wrapper.after(
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2042 this.originalElement.css({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2043 position: wrapper.css('position'),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2044 width: wrapper.outerWidth(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2045 height: wrapper.outerHeight(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2046 top: wrapper.css('top'),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2047 left: wrapper.css('left')
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2048 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2049 ).remove();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2050 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2051
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2052 this.originalElement.css('resize', this.originalResizeStyle);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2053 _destroy(this.originalElement);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2054
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2055 return this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2056 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2057
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2058 _mouseCapture: function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2059 var handle = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2060 for (var i in this.handles) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2061 if ($(this.handles[i])[0] == event.target) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2062 handle = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2063 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2064 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2065
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2066 return !this.options.disabled && handle;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2067 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2068
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2069 _mouseStart: function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2070
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2071 var o = this.options, iniPos = this.element.position(), el = this.element;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2072
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2073 this.resizing = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2074 this.documentScroll = { top: $(document).scrollTop(), left: $(document).scrollLeft() };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2075
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2076 // bugfix for http://dev.jquery.com/ticket/1749
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2077 if (el.is('.ui-draggable') || (/absolute/).test(el.css('position'))) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2078 el.css({ position: 'absolute', top: iniPos.top, left: iniPos.left });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2079 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2080
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2081 //Opera fixing relative position
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2082 if ($.browser.opera && (/relative/).test(el.css('position')))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2083 el.css({ position: 'relative', top: 'auto', left: 'auto' });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2084
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2085 this._renderProxy();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2086
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2087 var curleft = num(this.helper.css('left')), curtop = num(this.helper.css('top'));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2088
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2089 if (o.containment) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2090 curleft += $(o.containment).scrollLeft() || 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2091 curtop += $(o.containment).scrollTop() || 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2092 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2093
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2094 //Store needed variables
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2095 this.offset = this.helper.offset();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2096 this.position = { left: curleft, top: curtop };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2097 this.size = this._helper ? { width: el.outerWidth(), height: el.outerHeight() } : { width: el.width(), height: el.height() };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2098 this.originalSize = this._helper ? { width: el.outerWidth(), height: el.outerHeight() } : { width: el.width(), height: el.height() };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2099 this.originalPosition = { left: curleft, top: curtop };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2100 this.sizeDiff = { width: el.outerWidth() - el.width(), height: el.outerHeight() - el.height() };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2101 this.originalMousePosition = { left: event.pageX, top: event.pageY };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2102
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2103 //Aspect Ratio
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2104 this.aspectRatio = (typeof o.aspectRatio == 'number') ? o.aspectRatio : ((this.originalSize.width / this.originalSize.height) || 1);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2105
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2106 var cursor = $('.ui-resizable-' + this.axis).css('cursor');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2107 $('body').css('cursor', cursor == 'auto' ? this.axis + '-resize' : cursor);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2108
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2109 el.addClass("ui-resizable-resizing");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2110 this._propagate("start", event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2111 return true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2112 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2113
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2114 _mouseDrag: function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2115
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2116 //Increase performance, avoid regex
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2117 var el = this.helper, o = this.options, props = {},
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2118 self = this, smp = this.originalMousePosition, a = this.axis;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2119
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2120 var dx = (event.pageX-smp.left)||0, dy = (event.pageY-smp.top)||0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2121 var trigger = this._change[a];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2122 if (!trigger) return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2123
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2124 // Calculate the attrs that will be change
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2125 var data = trigger.apply(this, [event, dx, dy]), ie6 = $.browser.msie && $.browser.version < 7, csdif = this.sizeDiff;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2126
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2127 if (this._aspectRatio || event.shiftKey)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2128 data = this._updateRatio(data, event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2129
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2130 data = this._respectSize(data, event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2131
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2132 // plugins callbacks need to be called first
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2133 this._propagate("resize", event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2134
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2135 el.css({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2136 top: this.position.top + "px", left: this.position.left + "px",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2137 width: this.size.width + "px", height: this.size.height + "px"
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2138 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2139
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2140 if (!this._helper && this._proportionallyResizeElements.length)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2141 this._proportionallyResize();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2142
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2143 this._updateCache(data);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2144
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2145 // calling the user callback at the end
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2146 this._trigger('resize', event, this.ui());
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2147
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2148 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2149 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2150
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2151 _mouseStop: function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2152
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2153 this.resizing = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2154 var o = this.options, self = this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2155
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2156 if(this._helper) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2157 var pr = this._proportionallyResizeElements, ista = pr.length && (/textarea/i).test(pr[0].nodeName),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2158 soffseth = ista && $.ui.hasScroll(pr[0], 'left') /* TODO - jump height */ ? 0 : self.sizeDiff.height,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2159 soffsetw = ista ? 0 : self.sizeDiff.width;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2160
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2161 var s = { width: (self.size.width - soffsetw), height: (self.size.height - soffseth) },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2162 left = (parseInt(self.element.css('left'), 10) + (self.position.left - self.originalPosition.left)) || null,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2163 top = (parseInt(self.element.css('top'), 10) + (self.position.top - self.originalPosition.top)) || null;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2164
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2165 if (!o.animate)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2166 this.element.css($.extend(s, { top: top, left: left }));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2167
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2168 self.helper.height(self.size.height);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2169 self.helper.width(self.size.width);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2170
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2171 if (this._helper && !o.animate) this._proportionallyResize();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2172 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2173
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2174 $('body').css('cursor', 'auto');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2175
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2176 this.element.removeClass("ui-resizable-resizing");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2177
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2178 this._propagate("stop", event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2179
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2180 if (this._helper) this.helper.remove();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2181 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2182
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2183 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2184
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2185 _updateCache: function(data) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2186 var o = this.options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2187 this.offset = this.helper.offset();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2188 if (isNumber(data.left)) this.position.left = data.left;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2189 if (isNumber(data.top)) this.position.top = data.top;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2190 if (isNumber(data.height)) this.size.height = data.height;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2191 if (isNumber(data.width)) this.size.width = data.width;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2192 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2193
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2194 _updateRatio: function(data, event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2195
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2196 var o = this.options, cpos = this.position, csize = this.size, a = this.axis;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2197
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2198 if (data.height) data.width = (csize.height * this.aspectRatio);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2199 else if (data.width) data.height = (csize.width / this.aspectRatio);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2200
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2201 if (a == 'sw') {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2202 data.left = cpos.left + (csize.width - data.width);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2203 data.top = null;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2204 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2205 if (a == 'nw') {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2206 data.top = cpos.top + (csize.height - data.height);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2207 data.left = cpos.left + (csize.width - data.width);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2208 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2209
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2210 return data;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2211 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2212
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2213 _respectSize: function(data, event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2214
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2215 var el = this.helper, o = this.options, pRatio = this._aspectRatio || event.shiftKey, a = this.axis,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2216 ismaxw = isNumber(data.width) && o.maxWidth && (o.maxWidth < data.width), ismaxh = isNumber(data.height) && o.maxHeight && (o.maxHeight < data.height),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2217 isminw = isNumber(data.width) && o.minWidth && (o.minWidth > data.width), isminh = isNumber(data.height) && o.minHeight && (o.minHeight > data.height);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2218
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2219 if (isminw) data.width = o.minWidth;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2220 if (isminh) data.height = o.minHeight;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2221 if (ismaxw) data.width = o.maxWidth;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2222 if (ismaxh) data.height = o.maxHeight;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2223
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2224 var dw = this.originalPosition.left + this.originalSize.width, dh = this.position.top + this.size.height;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2225 var cw = /sw|nw|w/.test(a), ch = /nw|ne|n/.test(a);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2226
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2227 if (isminw && cw) data.left = dw - o.minWidth;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2228 if (ismaxw && cw) data.left = dw - o.maxWidth;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2229 if (isminh && ch) data.top = dh - o.minHeight;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2230 if (ismaxh && ch) data.top = dh - o.maxHeight;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2231
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2232 // fixing jump error on top/left - bug #2330
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2233 var isNotwh = !data.width && !data.height;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2234 if (isNotwh && !data.left && data.top) data.top = null;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2235 else if (isNotwh && !data.top && data.left) data.left = null;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2236
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2237 return data;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2238 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2239
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2240 _proportionallyResize: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2241
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2242 var o = this.options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2243 if (!this._proportionallyResizeElements.length) return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2244 var element = this.helper || this.element;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2245
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2246 for (var i=0; i < this._proportionallyResizeElements.length; i++) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2247
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2248 var prel = this._proportionallyResizeElements[i];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2249
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2250 if (!this.borderDif) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2251 var b = [prel.css('borderTopWidth'), prel.css('borderRightWidth'), prel.css('borderBottomWidth'), prel.css('borderLeftWidth')],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2252 p = [prel.css('paddingTop'), prel.css('paddingRight'), prel.css('paddingBottom'), prel.css('paddingLeft')];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2253
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2254 this.borderDif = $.map(b, function(v, i) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2255 var border = parseInt(v,10)||0, padding = parseInt(p[i],10)||0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2256 return border + padding;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2257 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2258 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2259
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2260 if ($.browser.msie && !(!($(element).is(':hidden') || $(element).parents(':hidden').length)))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2261 continue;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2262
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2263 prel.css({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2264 height: (element.height() - this.borderDif[0] - this.borderDif[2]) || 0,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2265 width: (element.width() - this.borderDif[1] - this.borderDif[3]) || 0
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2266 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2267
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2268 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2269
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2270 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2271
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2272 _renderProxy: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2273
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2274 var el = this.element, o = this.options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2275 this.elementOffset = el.offset();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2276
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2277 if(this._helper) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2278
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2279 this.helper = this.helper || $('<div style="overflow:hidden;"></div>');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2280
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2281 // fix ie6 offset TODO: This seems broken
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2282 var ie6 = $.browser.msie && $.browser.version < 7, ie6offset = (ie6 ? 1 : 0),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2283 pxyoffset = ( ie6 ? 2 : -1 );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2284
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2285 this.helper.addClass(this._helper).css({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2286 width: this.element.outerWidth() + pxyoffset,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2287 height: this.element.outerHeight() + pxyoffset,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2288 position: 'absolute',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2289 left: this.elementOffset.left - ie6offset +'px',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2290 top: this.elementOffset.top - ie6offset +'px',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2291 zIndex: ++o.zIndex //TODO: Don't modify option
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2292 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2293
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2294 this.helper
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2295 .appendTo("body")
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2296 .disableSelection();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2297
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2298 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2299 this.helper = this.element;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2300 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2301
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2302 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2303
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2304 _change: {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2305 e: function(event, dx, dy) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2306 return { width: this.originalSize.width + dx };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2307 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2308 w: function(event, dx, dy) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2309 var o = this.options, cs = this.originalSize, sp = this.originalPosition;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2310 return { left: sp.left + dx, width: cs.width - dx };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2311 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2312 n: function(event, dx, dy) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2313 var o = this.options, cs = this.originalSize, sp = this.originalPosition;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2314 return { top: sp.top + dy, height: cs.height - dy };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2315 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2316 s: function(event, dx, dy) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2317 return { height: this.originalSize.height + dy };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2318 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2319 se: function(event, dx, dy) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2320 return $.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [event, dx, dy]));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2321 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2322 sw: function(event, dx, dy) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2323 return $.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [event, dx, dy]));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2324 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2325 ne: function(event, dx, dy) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2326 return $.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [event, dx, dy]));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2327 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2328 nw: function(event, dx, dy) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2329 return $.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [event, dx, dy]));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2330 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2331 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2332
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2333 _propagate: function(n, event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2334 $.ui.plugin.call(this, n, [event, this.ui()]);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2335 (n != "resize" && this._trigger(n, event, this.ui()));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2336 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2337
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2338 plugins: {},
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2339
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2340 ui: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2341 return {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2342 originalElement: this.originalElement,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2343 element: this.element,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2344 helper: this.helper,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2345 position: this.position,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2346 size: this.size,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2347 originalSize: this.originalSize,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2348 originalPosition: this.originalPosition
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2349 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2350 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2351
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2352 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2353
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2354 $.extend($.ui.resizable, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2355 version: "1.8.7"
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2356 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2357
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2358 /*
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2359 * Resizable Extensions
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2360 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2361
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2362 $.ui.plugin.add("resizable", "alsoResize", {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2363
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2364 start: function (event, ui) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2365 var self = $(this).data("resizable"), o = self.options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2366
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2367 var _store = function (exp) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2368 $(exp).each(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2369 var el = $(this);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2370 el.data("resizable-alsoresize", {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2371 width: parseInt(el.width(), 10), height: parseInt(el.height(), 10),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2372 left: parseInt(el.css('left'), 10), top: parseInt(el.css('top'), 10),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2373 position: el.css('position') // to reset Opera on stop()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2374 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2375 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2376 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2377
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2378 if (typeof(o.alsoResize) == 'object' && !o.alsoResize.parentNode) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2379 if (o.alsoResize.length) { o.alsoResize = o.alsoResize[0]; _store(o.alsoResize); }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2380 else { $.each(o.alsoResize, function (exp) { _store(exp); }); }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2381 }else{
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2382 _store(o.alsoResize);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2383 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2384 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2385
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2386 resize: function (event, ui) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2387 var self = $(this).data("resizable"), o = self.options, os = self.originalSize, op = self.originalPosition;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2388
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2389 var delta = {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2390 height: (self.size.height - os.height) || 0, width: (self.size.width - os.width) || 0,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2391 top: (self.position.top - op.top) || 0, left: (self.position.left - op.left) || 0
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2392 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2393
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2394 _alsoResize = function (exp, c) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2395 $(exp).each(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2396 var el = $(this), start = $(this).data("resizable-alsoresize"), style = {},
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2397 css = c && c.length ? c : el.parents(ui.originalElement[0]).length ? ['width', 'height'] : ['width', 'height', 'top', 'left'];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2398
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2399 $.each(css, function (i, prop) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2400 var sum = (start[prop]||0) + (delta[prop]||0);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2401 if (sum && sum >= 0)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2402 style[prop] = sum || null;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2403 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2404
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2405 // Opera fixing relative position
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2406 if ($.browser.opera && /relative/.test(el.css('position'))) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2407 self._revertToRelativePosition = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2408 el.css({ position: 'absolute', top: 'auto', left: 'auto' });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2409 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2410
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2411 el.css(style);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2412 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2413 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2414
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2415 if (typeof(o.alsoResize) == 'object' && !o.alsoResize.nodeType) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2416 $.each(o.alsoResize, function (exp, c) { _alsoResize(exp, c); });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2417 }else{
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2418 _alsoResize(o.alsoResize);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2419 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2420 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2421
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2422 stop: function (event, ui) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2423 var self = $(this).data("resizable"), o = self.options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2424
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2425 var _reset = function (exp) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2426 $(exp).each(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2427 var el = $(this);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2428 // reset position for Opera - no need to verify it was changed
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2429 el.css({ position: el.data("resizable-alsoresize").position });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2430 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2431 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2432
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2433 if (self._revertToRelativePosition) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2434 self._revertToRelativePosition = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2435 if (typeof(o.alsoResize) == 'object' && !o.alsoResize.nodeType) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2436 $.each(o.alsoResize, function (exp) { _reset(exp); });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2437 }else{
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2438 _reset(o.alsoResize);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2439 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2440 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2441
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2442 $(this).removeData("resizable-alsoresize");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2443 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2444 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2445
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2446 $.ui.plugin.add("resizable", "animate", {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2447
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2448 stop: function(event, ui) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2449 var self = $(this).data("resizable"), o = self.options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2450
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2451 var pr = self._proportionallyResizeElements, ista = pr.length && (/textarea/i).test(pr[0].nodeName),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2452 soffseth = ista && $.ui.hasScroll(pr[0], 'left') /* TODO - jump height */ ? 0 : self.sizeDiff.height,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2453 soffsetw = ista ? 0 : self.sizeDiff.width;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2454
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2455 var style = { width: (self.size.width - soffsetw), height: (self.size.height - soffseth) },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2456 left = (parseInt(self.element.css('left'), 10) + (self.position.left - self.originalPosition.left)) || null,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2457 top = (parseInt(self.element.css('top'), 10) + (self.position.top - self.originalPosition.top)) || null;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2458
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2459 self.element.animate(
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2460 $.extend(style, top && left ? { top: top, left: left } : {}), {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2461 duration: o.animateDuration,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2462 easing: o.animateEasing,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2463 step: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2464
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2465 var data = {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2466 width: parseInt(self.element.css('width'), 10),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2467 height: parseInt(self.element.css('height'), 10),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2468 top: parseInt(self.element.css('top'), 10),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2469 left: parseInt(self.element.css('left'), 10)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2470 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2471
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2472 if (pr && pr.length) $(pr[0]).css({ width: data.width, height: data.height });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2473
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2474 // propagating resize, and updating values for each animation step
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2475 self._updateCache(data);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2476 self._propagate("resize", event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2477
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2478 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2479 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2480 );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2481 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2482
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2483 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2484
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2485 $.ui.plugin.add("resizable", "containment", {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2486
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2487 start: function(event, ui) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2488 var self = $(this).data("resizable"), o = self.options, el = self.element;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2489 var oc = o.containment, ce = (oc instanceof $) ? oc.get(0) : (/parent/.test(oc)) ? el.parent().get(0) : oc;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2490 if (!ce) return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2491
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2492 self.containerElement = $(ce);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2493
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2494 if (/document/.test(oc) || oc == document) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2495 self.containerOffset = { left: 0, top: 0 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2496 self.containerPosition = { left: 0, top: 0 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2497
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2498 self.parentData = {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2499 element: $(document), left: 0, top: 0,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2500 width: $(document).width(), height: $(document).height() || document.body.parentNode.scrollHeight
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2501 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2502 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2503
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2504 // i'm a node, so compute top, left, right, bottom
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2505 else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2506 var element = $(ce), p = [];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2507 $([ "Top", "Right", "Left", "Bottom" ]).each(function(i, name) { p[i] = num(element.css("padding" + name)); });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2508
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2509 self.containerOffset = element.offset();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2510 self.containerPosition = element.position();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2511 self.containerSize = { height: (element.innerHeight() - p[3]), width: (element.innerWidth() - p[1]) };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2512
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2513 var co = self.containerOffset, ch = self.containerSize.height, cw = self.containerSize.width,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2514 width = ($.ui.hasScroll(ce, "left") ? ce.scrollWidth : cw ), height = ($.ui.hasScroll(ce) ? ce.scrollHeight : ch);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2515
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2516 self.parentData = {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2517 element: ce, left: co.left, top: co.top, width: width, height: height
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2518 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2519 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2520 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2521
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2522 resize: function(event, ui) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2523 var self = $(this).data("resizable"), o = self.options,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2524 ps = self.containerSize, co = self.containerOffset, cs = self.size, cp = self.position,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2525 pRatio = self._aspectRatio || event.shiftKey, cop = { top:0, left:0 }, ce = self.containerElement;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2526
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2527 if (ce[0] != document && (/static/).test(ce.css('position'))) cop = co;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2528
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2529 if (cp.left < (self._helper ? co.left : 0)) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2530 self.size.width = self.size.width + (self._helper ? (self.position.left - co.left) : (self.position.left - cop.left));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2531 if (pRatio) self.size.height = self.size.width / o.aspectRatio;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2532 self.position.left = o.helper ? co.left : 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2533 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2534
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2535 if (cp.top < (self._helper ? co.top : 0)) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2536 self.size.height = self.size.height + (self._helper ? (self.position.top - co.top) : self.position.top);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2537 if (pRatio) self.size.width = self.size.height * o.aspectRatio;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2538 self.position.top = self._helper ? co.top : 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2539 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2540
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2541 self.offset.left = self.parentData.left+self.position.left;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2542 self.offset.top = self.parentData.top+self.position.top;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2543
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2544 var woset = Math.abs( (self._helper ? self.offset.left - cop.left : (self.offset.left - cop.left)) + self.sizeDiff.width ),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2545 hoset = Math.abs( (self._helper ? self.offset.top - cop.top : (self.offset.top - co.top)) + self.sizeDiff.height );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2546
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2547 var isParent = self.containerElement.get(0) == self.element.parent().get(0),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2548 isOffsetRelative = /relative|absolute/.test(self.containerElement.css('position'));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2549
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2550 if(isParent && isOffsetRelative) woset -= self.parentData.left;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2551
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2552 if (woset + self.size.width >= self.parentData.width) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2553 self.size.width = self.parentData.width - woset;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2554 if (pRatio) self.size.height = self.size.width / self.aspectRatio;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2555 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2556
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2557 if (hoset + self.size.height >= self.parentData.height) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2558 self.size.height = self.parentData.height - hoset;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2559 if (pRatio) self.size.width = self.size.height * self.aspectRatio;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2560 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2561 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2562
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2563 stop: function(event, ui){
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2564 var self = $(this).data("resizable"), o = self.options, cp = self.position,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2565 co = self.containerOffset, cop = self.containerPosition, ce = self.containerElement;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2566
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2567 var helper = $(self.helper), ho = helper.offset(), w = helper.outerWidth() - self.sizeDiff.width, h = helper.outerHeight() - self.sizeDiff.height;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2568
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2569 if (self._helper && !o.animate && (/relative/).test(ce.css('position')))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2570 $(this).css({ left: ho.left - cop.left - co.left, width: w, height: h });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2571
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2572 if (self._helper && !o.animate && (/static/).test(ce.css('position')))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2573 $(this).css({ left: ho.left - cop.left - co.left, width: w, height: h });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2574
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2575 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2576 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2577
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2578 $.ui.plugin.add("resizable", "ghost", {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2579
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2580 start: function(event, ui) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2581
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2582 var self = $(this).data("resizable"), o = self.options, cs = self.size;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2583
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2584 self.ghost = self.originalElement.clone();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2585 self.ghost
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2586 .css({ opacity: .25, display: 'block', position: 'relative', height: cs.height, width: cs.width, margin: 0, left: 0, top: 0 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2587 .addClass('ui-resizable-ghost')
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2588 .addClass(typeof o.ghost == 'string' ? o.ghost : '');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2589
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2590 self.ghost.appendTo(self.helper);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2591
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2592 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2593
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2594 resize: function(event, ui){
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2595 var self = $(this).data("resizable"), o = self.options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2596 if (self.ghost) self.ghost.css({ position: 'relative', height: self.size.height, width: self.size.width });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2597 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2598
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2599 stop: function(event, ui){
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2600 var self = $(this).data("resizable"), o = self.options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2601 if (self.ghost && self.helper) self.helper.get(0).removeChild(self.ghost.get(0));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2602 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2603
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2604 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2605
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2606 $.ui.plugin.add("resizable", "grid", {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2607
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2608 resize: function(event, ui) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2609 var self = $(this).data("resizable"), o = self.options, cs = self.size, os = self.originalSize, op = self.originalPosition, a = self.axis, ratio = o._aspectRatio || event.shiftKey;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2610 o.grid = typeof o.grid == "number" ? [o.grid, o.grid] : o.grid;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2611 var ox = Math.round((cs.width - os.width) / (o.grid[0]||1)) * (o.grid[0]||1), oy = Math.round((cs.height - os.height) / (o.grid[1]||1)) * (o.grid[1]||1);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2612
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2613 if (/^(se|s|e)$/.test(a)) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2614 self.size.width = os.width + ox;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2615 self.size.height = os.height + oy;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2616 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2617 else if (/^(ne)$/.test(a)) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2618 self.size.width = os.width + ox;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2619 self.size.height = os.height + oy;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2620 self.position.top = op.top - oy;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2621 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2622 else if (/^(sw)$/.test(a)) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2623 self.size.width = os.width + ox;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2624 self.size.height = os.height + oy;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2625 self.position.left = op.left - ox;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2626 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2627 else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2628 self.size.width = os.width + ox;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2629 self.size.height = os.height + oy;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2630 self.position.top = op.top - oy;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2631 self.position.left = op.left - ox;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2632 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2633 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2634
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2635 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2636
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2637 var num = function(v) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2638 return parseInt(v, 10) || 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2639 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2640
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2641 var isNumber = function(value) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2642 return !isNaN(parseInt(value, 10));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2643 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2644
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2645 })(jQuery);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2646 /*
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2647 * Note: While Microsoft is not the author of this file, Microsoft is
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2648 * offering you a license subject to the terms of the Microsoft Software
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2649 * License Terms for Microsoft ASP.NET Model View Controller 3.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2650 * Microsoft reserves all other rights. The notices below are provided
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2651 * for informational purposes only and are not the license terms under
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2652 * which Microsoft distributed this file.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2653 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2654 * jQuery UI Selectable 1.8.7
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2655 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2656 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2657 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2658 * http://docs.jquery.com/UI/Selectables
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2659 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2660 * Depends:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2661 * jquery.ui.core.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2662 * jquery.ui.mouse.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2663 * jquery.ui.widget.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2664 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2665 (function( $, undefined ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2666
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2667 $.widget("ui.selectable", $.ui.mouse, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2668 options: {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2669 appendTo: 'body',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2670 autoRefresh: true,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2671 distance: 0,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2672 filter: '*',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2673 tolerance: 'touch'
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2674 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2675 _create: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2676 var self = this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2677
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2678 this.element.addClass("ui-selectable");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2679
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2680 this.dragged = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2681
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2682 // cache selectee children based on filter
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2683 var selectees;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2684 this.refresh = function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2685 selectees = $(self.options.filter, self.element[0]);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2686 selectees.each(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2687 var $this = $(this);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2688 var pos = $this.offset();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2689 $.data(this, "selectable-item", {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2690 element: this,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2691 $element: $this,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2692 left: pos.left,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2693 top: pos.top,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2694 right: pos.left + $this.outerWidth(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2695 bottom: pos.top + $this.outerHeight(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2696 startselected: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2697 selected: $this.hasClass('ui-selected'),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2698 selecting: $this.hasClass('ui-selecting'),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2699 unselecting: $this.hasClass('ui-unselecting')
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2700 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2701 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2702 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2703 this.refresh();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2704
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2705 this.selectees = selectees.addClass("ui-selectee");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2706
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2707 this._mouseInit();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2708
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2709 this.helper = $("<div class='ui-selectable-helper'></div>");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2710 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2711
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2712 destroy: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2713 this.selectees
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2714 .removeClass("ui-selectee")
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2715 .removeData("selectable-item");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2716 this.element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2717 .removeClass("ui-selectable ui-selectable-disabled")
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2718 .removeData("selectable")
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2719 .unbind(".selectable");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2720 this._mouseDestroy();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2721
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2722 return this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2723 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2724
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2725 _mouseStart: function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2726 var self = this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2727
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2728 this.opos = [event.pageX, event.pageY];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2729
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2730 if (this.options.disabled)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2731 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2732
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2733 var options = this.options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2734
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2735 this.selectees = $(options.filter, this.element[0]);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2736
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2737 this._trigger("start", event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2738
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2739 $(options.appendTo).append(this.helper);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2740 // position helper (lasso)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2741 this.helper.css({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2742 "left": event.clientX,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2743 "top": event.clientY,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2744 "width": 0,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2745 "height": 0
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2746 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2747
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2748 if (options.autoRefresh) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2749 this.refresh();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2750 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2751
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2752 this.selectees.filter('.ui-selected').each(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2753 var selectee = $.data(this, "selectable-item");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2754 selectee.startselected = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2755 if (!event.metaKey) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2756 selectee.$element.removeClass('ui-selected');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2757 selectee.selected = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2758 selectee.$element.addClass('ui-unselecting');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2759 selectee.unselecting = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2760 // selectable UNSELECTING callback
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2761 self._trigger("unselecting", event, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2762 unselecting: selectee.element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2763 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2764 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2765 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2766
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2767 $(event.target).parents().andSelf().each(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2768 var selectee = $.data(this, "selectable-item");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2769 if (selectee) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2770 var doSelect = !event.metaKey || !selectee.$element.hasClass('ui-selected');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2771 selectee.$element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2772 .removeClass(doSelect ? "ui-unselecting" : "ui-selected")
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2773 .addClass(doSelect ? "ui-selecting" : "ui-unselecting");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2774 selectee.unselecting = !doSelect;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2775 selectee.selecting = doSelect;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2776 selectee.selected = doSelect;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2777 // selectable (UN)SELECTING callback
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2778 if (doSelect) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2779 self._trigger("selecting", event, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2780 selecting: selectee.element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2781 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2782 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2783 self._trigger("unselecting", event, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2784 unselecting: selectee.element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2785 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2786 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2787 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2788 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2789 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2790
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2791 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2792
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2793 _mouseDrag: function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2794 var self = this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2795 this.dragged = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2796
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2797 if (this.options.disabled)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2798 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2799
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2800 var options = this.options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2801
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2802 var x1 = this.opos[0], y1 = this.opos[1], x2 = event.pageX, y2 = event.pageY;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2803 if (x1 > x2) { var tmp = x2; x2 = x1; x1 = tmp; }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2804 if (y1 > y2) { var tmp = y2; y2 = y1; y1 = tmp; }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2805 this.helper.css({left: x1, top: y1, width: x2-x1, height: y2-y1});
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2806
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2807 this.selectees.each(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2808 var selectee = $.data(this, "selectable-item");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2809 //prevent helper from being selected if appendTo: selectable
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2810 if (!selectee || selectee.element == self.element[0])
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2811 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2812 var hit = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2813 if (options.tolerance == 'touch') {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2814 hit = ( !(selectee.left > x2 || selectee.right < x1 || selectee.top > y2 || selectee.bottom < y1) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2815 } else if (options.tolerance == 'fit') {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2816 hit = (selectee.left > x1 && selectee.right < x2 && selectee.top > y1 && selectee.bottom < y2);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2817 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2818
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2819 if (hit) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2820 // SELECT
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2821 if (selectee.selected) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2822 selectee.$element.removeClass('ui-selected');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2823 selectee.selected = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2824 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2825 if (selectee.unselecting) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2826 selectee.$element.removeClass('ui-unselecting');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2827 selectee.unselecting = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2828 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2829 if (!selectee.selecting) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2830 selectee.$element.addClass('ui-selecting');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2831 selectee.selecting = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2832 // selectable SELECTING callback
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2833 self._trigger("selecting", event, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2834 selecting: selectee.element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2835 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2836 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2837 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2838 // UNSELECT
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2839 if (selectee.selecting) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2840 if (event.metaKey && selectee.startselected) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2841 selectee.$element.removeClass('ui-selecting');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2842 selectee.selecting = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2843 selectee.$element.addClass('ui-selected');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2844 selectee.selected = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2845 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2846 selectee.$element.removeClass('ui-selecting');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2847 selectee.selecting = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2848 if (selectee.startselected) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2849 selectee.$element.addClass('ui-unselecting');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2850 selectee.unselecting = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2851 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2852 // selectable UNSELECTING callback
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2853 self._trigger("unselecting", event, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2854 unselecting: selectee.element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2855 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2856 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2857 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2858 if (selectee.selected) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2859 if (!event.metaKey && !selectee.startselected) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2860 selectee.$element.removeClass('ui-selected');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2861 selectee.selected = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2862
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2863 selectee.$element.addClass('ui-unselecting');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2864 selectee.unselecting = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2865 // selectable UNSELECTING callback
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2866 self._trigger("unselecting", event, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2867 unselecting: selectee.element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2868 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2869 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2870 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2871 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2872 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2873
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2874 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2875 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2876
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2877 _mouseStop: function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2878 var self = this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2879
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2880 this.dragged = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2881
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2882 var options = this.options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2883
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2884 $('.ui-unselecting', this.element[0]).each(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2885 var selectee = $.data(this, "selectable-item");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2886 selectee.$element.removeClass('ui-unselecting');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2887 selectee.unselecting = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2888 selectee.startselected = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2889 self._trigger("unselected", event, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2890 unselected: selectee.element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2891 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2892 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2893 $('.ui-selecting', this.element[0]).each(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2894 var selectee = $.data(this, "selectable-item");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2895 selectee.$element.removeClass('ui-selecting').addClass('ui-selected');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2896 selectee.selecting = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2897 selectee.selected = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2898 selectee.startselected = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2899 self._trigger("selected", event, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2900 selected: selectee.element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2901 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2902 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2903 this._trigger("stop", event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2904
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2905 this.helper.remove();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2906
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2907 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2908 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2909
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2910 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2911
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2912 $.extend($.ui.selectable, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2913 version: "1.8.7"
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2914 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2915
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2916 })(jQuery);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2917 /*
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2918 * Note: While Microsoft is not the author of this file, Microsoft is
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2919 * offering you a license subject to the terms of the Microsoft Software
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2920 * License Terms for Microsoft ASP.NET Model View Controller 3.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2921 * Microsoft reserves all other rights. The notices below are provided
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2922 * for informational purposes only and are not the license terms under
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2923 * which Microsoft distributed this file.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2924 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2925 * jQuery UI Sortable 1.8.7
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2926 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2927 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2928 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2929 * http://docs.jquery.com/UI/Sortables
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2930 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2931 * Depends:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2932 * jquery.ui.core.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2933 * jquery.ui.mouse.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2934 * jquery.ui.widget.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2935 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2936 (function( $, undefined ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2937
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2938 $.widget("ui.sortable", $.ui.mouse, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2939 widgetEventPrefix: "sort",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2940 options: {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2941 appendTo: "parent",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2942 axis: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2943 connectWith: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2944 containment: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2945 cursor: 'auto',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2946 cursorAt: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2947 dropOnEmpty: true,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2948 forcePlaceholderSize: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2949 forceHelperSize: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2950 grid: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2951 handle: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2952 helper: "original",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2953 items: '> *',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2954 opacity: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2955 placeholder: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2956 revert: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2957 scroll: true,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2958 scrollSensitivity: 20,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2959 scrollSpeed: 20,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2960 scope: "default",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2961 tolerance: "intersect",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2962 zIndex: 1000
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2963 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2964 _create: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2965
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2966 var o = this.options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2967 this.containerCache = {};
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2968 this.element.addClass("ui-sortable");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2969
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2970 //Get the items
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2971 this.refresh();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2972
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2973 //Let's determine if the items are floating
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2974 this.floating = this.items.length ? (/left|right/).test(this.items[0].item.css('float')) : false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2975
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2976 //Let's determine the parent's offset
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2977 this.offset = this.element.offset();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2978
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2979 //Initialize mouse events for interaction
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2980 this._mouseInit();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2981
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2982 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2983
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2984 destroy: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2985 this.element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2986 .removeClass("ui-sortable ui-sortable-disabled")
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2987 .removeData("sortable")
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2988 .unbind(".sortable");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2989 this._mouseDestroy();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2990
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2991 for ( var i = this.items.length - 1; i >= 0; i-- )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2992 this.items[i].item.removeData("sortable-item");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2993
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2994 return this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2995 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2996
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2997 _setOption: function(key, value){
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2998 if ( key === "disabled" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
2999 this.options[ key ] = value;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3000
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3001 this.widget()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3002 [ value ? "addClass" : "removeClass"]( "ui-sortable-disabled" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3003 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3004 // Don't call widget base _setOption for disable as it adds ui-state-disabled class
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3005 $.Widget.prototype._setOption.apply(this, arguments);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3006 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3007 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3008
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3009 _mouseCapture: function(event, overrideHandle) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3010
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3011 if (this.reverting) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3012 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3013 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3014
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3015 if(this.options.disabled || this.options.type == 'static') return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3016
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3017 //We have to refresh the items data once first
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3018 this._refreshItems(event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3019
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3020 //Find out if the clicked node (or one of its parents) is a actual item in this.items
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3021 var currentItem = null, self = this, nodes = $(event.target).parents().each(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3022 if($.data(this, 'sortable-item') == self) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3023 currentItem = $(this);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3024 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3025 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3026 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3027 if($.data(event.target, 'sortable-item') == self) currentItem = $(event.target);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3028
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3029 if(!currentItem) return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3030 if(this.options.handle && !overrideHandle) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3031 var validHandle = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3032
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3033 $(this.options.handle, currentItem).find("*").andSelf().each(function() { if(this == event.target) validHandle = true; });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3034 if(!validHandle) return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3035 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3036
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3037 this.currentItem = currentItem;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3038 this._removeCurrentsFromItems();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3039 return true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3040
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3041 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3042
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3043 _mouseStart: function(event, overrideHandle, noActivation) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3044
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3045 var o = this.options, self = this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3046 this.currentContainer = this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3047
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3048 //We only need to call refreshPositions, because the refreshItems call has been moved to mouseCapture
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3049 this.refreshPositions();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3050
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3051 //Create and append the visible helper
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3052 this.helper = this._createHelper(event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3053
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3054 //Cache the helper size
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3055 this._cacheHelperProportions();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3056
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3057 /*
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3058 * - Position generation -
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3059 * This block generates everything position related - it's the core of draggables.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3060 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3061
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3062 //Cache the margins of the original element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3063 this._cacheMargins();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3064
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3065 //Get the next scrolling parent
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3066 this.scrollParent = this.helper.scrollParent();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3067
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3068 //The element's absolute position on the page minus margins
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3069 this.offset = this.currentItem.offset();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3070 this.offset = {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3071 top: this.offset.top - this.margins.top,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3072 left: this.offset.left - this.margins.left
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3073 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3074
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3075 // Only after we got the offset, we can change the helper's position to absolute
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3076 // TODO: Still need to figure out a way to make relative sorting possible
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3077 this.helper.css("position", "absolute");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3078 this.cssPosition = this.helper.css("position");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3079
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3080 $.extend(this.offset, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3081 click: { //Where the click happened, relative to the element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3082 left: event.pageX - this.offset.left,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3083 top: event.pageY - this.offset.top
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3084 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3085 parent: this._getParentOffset(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3086 relative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3087 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3088
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3089 //Generate the original position
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3090 this.originalPosition = this._generatePosition(event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3091 this.originalPageX = event.pageX;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3092 this.originalPageY = event.pageY;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3093
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3094 //Adjust the mouse offset relative to the helper if 'cursorAt' is supplied
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3095 (o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3096
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3097 //Cache the former DOM position
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3098 this.domPosition = { prev: this.currentItem.prev()[0], parent: this.currentItem.parent()[0] };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3099
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3100 //If the helper is not the original, hide the original so it's not playing any role during the drag, won't cause anything bad this way
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3101 if(this.helper[0] != this.currentItem[0]) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3102 this.currentItem.hide();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3103 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3104
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3105 //Create the placeholder
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3106 this._createPlaceholder();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3107
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3108 //Set a containment if given in the options
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3109 if(o.containment)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3110 this._setContainment();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3111
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3112 if(o.cursor) { // cursor option
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3113 if ($('body').css("cursor")) this._storedCursor = $('body').css("cursor");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3114 $('body').css("cursor", o.cursor);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3115 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3116
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3117 if(o.opacity) { // opacity option
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3118 if (this.helper.css("opacity")) this._storedOpacity = this.helper.css("opacity");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3119 this.helper.css("opacity", o.opacity);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3120 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3121
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3122 if(o.zIndex) { // zIndex option
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3123 if (this.helper.css("zIndex")) this._storedZIndex = this.helper.css("zIndex");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3124 this.helper.css("zIndex", o.zIndex);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3125 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3126
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3127 //Prepare scrolling
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3128 if(this.scrollParent[0] != document && this.scrollParent[0].tagName != 'HTML')
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3129 this.overflowOffset = this.scrollParent.offset();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3130
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3131 //Call callbacks
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3132 this._trigger("start", event, this._uiHash());
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3133
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3134 //Recache the helper size
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3135 if(!this._preserveHelperProportions)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3136 this._cacheHelperProportions();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3137
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3138
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3139 //Post 'activate' events to possible containers
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3140 if(!noActivation) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3141 for (var i = this.containers.length - 1; i >= 0; i--) { this.containers[i]._trigger("activate", event, self._uiHash(this)); }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3142 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3143
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3144 //Prepare possible droppables
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3145 if($.ui.ddmanager)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3146 $.ui.ddmanager.current = this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3147
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3148 if ($.ui.ddmanager && !o.dropBehaviour)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3149 $.ui.ddmanager.prepareOffsets(this, event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3150
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3151 this.dragging = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3152
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3153 this.helper.addClass("ui-sortable-helper");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3154 this._mouseDrag(event); //Execute the drag once - this causes the helper not to be visible before getting its correct position
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3155 return true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3156
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3157 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3158
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3159 _mouseDrag: function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3160
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3161 //Compute the helpers position
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3162 this.position = this._generatePosition(event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3163 this.positionAbs = this._convertPositionTo("absolute");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3164
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3165 if (!this.lastPositionAbs) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3166 this.lastPositionAbs = this.positionAbs;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3167 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3168
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3169 //Do scrolling
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3170 if(this.options.scroll) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3171 var o = this.options, scrolled = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3172 if(this.scrollParent[0] != document && this.scrollParent[0].tagName != 'HTML') {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3173
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3174 if((this.overflowOffset.top + this.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3175 this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop + o.scrollSpeed;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3176 else if(event.pageY - this.overflowOffset.top < o.scrollSensitivity)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3177 this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop - o.scrollSpeed;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3178
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3179 if((this.overflowOffset.left + this.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3180 this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft + o.scrollSpeed;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3181 else if(event.pageX - this.overflowOffset.left < o.scrollSensitivity)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3182 this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft - o.scrollSpeed;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3183
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3184 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3185
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3186 if(event.pageY - $(document).scrollTop() < o.scrollSensitivity)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3187 scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3188 else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3189 scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3190
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3191 if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3192 scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3193 else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3194 scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3195
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3196 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3197
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3198 if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3199 $.ui.ddmanager.prepareOffsets(this, event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3200 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3201
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3202 //Regenerate the absolute position used for position checks
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3203 this.positionAbs = this._convertPositionTo("absolute");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3204
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3205 //Set the helper position
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3206 if(!this.options.axis || this.options.axis != "y") this.helper[0].style.left = this.position.left+'px';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3207 if(!this.options.axis || this.options.axis != "x") this.helper[0].style.top = this.position.top+'px';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3208
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3209 //Rearrange
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3210 for (var i = this.items.length - 1; i >= 0; i--) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3211
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3212 //Cache variables and intersection, continue if no intersection
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3213 var item = this.items[i], itemElement = item.item[0], intersection = this._intersectsWithPointer(item);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3214 if (!intersection) continue;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3215
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3216 if(itemElement != this.currentItem[0] //cannot intersect with itself
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3217 && this.placeholder[intersection == 1 ? "next" : "prev"]()[0] != itemElement //no useless actions that have been done before
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3218 && !$.ui.contains(this.placeholder[0], itemElement) //no action if the item moved is the parent of the item checked
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3219 && (this.options.type == 'semi-dynamic' ? !$.ui.contains(this.element[0], itemElement) : true)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3220 //&& itemElement.parentNode == this.placeholder[0].parentNode // only rearrange items within the same container
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3221 ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3222
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3223 this.direction = intersection == 1 ? "down" : "up";
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3224
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3225 if (this.options.tolerance == "pointer" || this._intersectsWithSides(item)) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3226 this._rearrange(event, item);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3227 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3228 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3229 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3230
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3231 this._trigger("change", event, this._uiHash());
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3232 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3233 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3234 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3235
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3236 //Post events to containers
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3237 this._contactContainers(event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3238
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3239 //Interconnect with droppables
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3240 if($.ui.ddmanager) $.ui.ddmanager.drag(this, event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3241
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3242 //Call callbacks
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3243 this._trigger('sort', event, this._uiHash());
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3244
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3245 this.lastPositionAbs = this.positionAbs;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3246 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3247
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3248 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3249
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3250 _mouseStop: function(event, noPropagation) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3251
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3252 if(!event) return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3253
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3254 //If we are using droppables, inform the manager about the drop
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3255 if ($.ui.ddmanager && !this.options.dropBehaviour)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3256 $.ui.ddmanager.drop(this, event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3257
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3258 if(this.options.revert) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3259 var self = this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3260 var cur = self.placeholder.offset();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3261
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3262 self.reverting = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3263
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3264 $(this.helper).animate({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3265 left: cur.left - this.offset.parent.left - self.margins.left + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollLeft),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3266 top: cur.top - this.offset.parent.top - self.margins.top + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollTop)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3267 }, parseInt(this.options.revert, 10) || 500, function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3268 self._clear(event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3269 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3270 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3271 this._clear(event, noPropagation);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3272 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3273
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3274 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3275
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3276 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3277
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3278 cancel: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3279
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3280 var self = this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3281
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3282 if(this.dragging) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3283
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3284 this._mouseUp();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3285
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3286 if(this.options.helper == "original")
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3287 this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3288 else
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3289 this.currentItem.show();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3290
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3291 //Post deactivating events to containers
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3292 for (var i = this.containers.length - 1; i >= 0; i--){
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3293 this.containers[i]._trigger("deactivate", null, self._uiHash(this));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3294 if(this.containers[i].containerCache.over) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3295 this.containers[i]._trigger("out", null, self._uiHash(this));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3296 this.containers[i].containerCache.over = 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3297 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3298 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3299
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3300 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3301
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3302 //$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node!
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3303 if(this.placeholder[0].parentNode) this.placeholder[0].parentNode.removeChild(this.placeholder[0]);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3304 if(this.options.helper != "original" && this.helper && this.helper[0].parentNode) this.helper.remove();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3305
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3306 $.extend(this, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3307 helper: null,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3308 dragging: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3309 reverting: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3310 _noFinalSort: null
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3311 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3312
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3313 if(this.domPosition.prev) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3314 $(this.domPosition.prev).after(this.currentItem);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3315 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3316 $(this.domPosition.parent).prepend(this.currentItem);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3317 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3318
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3319 return this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3320
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3321 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3322
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3323 serialize: function(o) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3324
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3325 var items = this._getItemsAsjQuery(o && o.connected);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3326 var str = []; o = o || {};
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3327
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3328 $(items).each(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3329 var res = ($(o.item || this).attr(o.attribute || 'id') || '').match(o.expression || (/(.+)[-=_](.+)/));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3330 if(res) str.push((o.key || res[1]+'[]')+'='+(o.key && o.expression ? res[1] : res[2]));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3331 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3332
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3333 if(!str.length && o.key) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3334 str.push(o.key + '=');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3335 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3336
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3337 return str.join('&');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3338
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3339 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3340
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3341 toArray: function(o) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3342
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3343 var items = this._getItemsAsjQuery(o && o.connected);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3344 var ret = []; o = o || {};
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3345
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3346 items.each(function() { ret.push($(o.item || this).attr(o.attribute || 'id') || ''); });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3347 return ret;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3348
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3349 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3350
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3351 /* Be careful with the following core functions */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3352 _intersectsWith: function(item) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3353
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3354 var x1 = this.positionAbs.left,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3355 x2 = x1 + this.helperProportions.width,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3356 y1 = this.positionAbs.top,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3357 y2 = y1 + this.helperProportions.height;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3358
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3359 var l = item.left,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3360 r = l + item.width,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3361 t = item.top,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3362 b = t + item.height;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3363
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3364 var dyClick = this.offset.click.top,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3365 dxClick = this.offset.click.left;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3366
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3367 var isOverElement = (y1 + dyClick) > t && (y1 + dyClick) < b && (x1 + dxClick) > l && (x1 + dxClick) < r;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3368
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3369 if( this.options.tolerance == "pointer"
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3370 || this.options.forcePointerForContainers
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3371 || (this.options.tolerance != "pointer" && this.helperProportions[this.floating ? 'width' : 'height'] > item[this.floating ? 'width' : 'height'])
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3372 ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3373 return isOverElement;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3374 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3375
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3376 return (l < x1 + (this.helperProportions.width / 2) // Right Half
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3377 && x2 - (this.helperProportions.width / 2) < r // Left Half
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3378 && t < y1 + (this.helperProportions.height / 2) // Bottom Half
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3379 && y2 - (this.helperProportions.height / 2) < b ); // Top Half
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3380
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3381 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3382 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3383
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3384 _intersectsWithPointer: function(item) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3385
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3386 var isOverElementHeight = $.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, item.top, item.height),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3387 isOverElementWidth = $.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, item.left, item.width),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3388 isOverElement = isOverElementHeight && isOverElementWidth,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3389 verticalDirection = this._getDragVerticalDirection(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3390 horizontalDirection = this._getDragHorizontalDirection();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3391
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3392 if (!isOverElement)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3393 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3394
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3395 return this.floating ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3396 ( ((horizontalDirection && horizontalDirection == "right") || verticalDirection == "down") ? 2 : 1 )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3397 : ( verticalDirection && (verticalDirection == "down" ? 2 : 1) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3398
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3399 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3400
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3401 _intersectsWithSides: function(item) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3402
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3403 var isOverBottomHalf = $.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, item.top + (item.height/2), item.height),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3404 isOverRightHalf = $.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, item.left + (item.width/2), item.width),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3405 verticalDirection = this._getDragVerticalDirection(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3406 horizontalDirection = this._getDragHorizontalDirection();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3407
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3408 if (this.floating && horizontalDirection) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3409 return ((horizontalDirection == "right" && isOverRightHalf) || (horizontalDirection == "left" && !isOverRightHalf));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3410 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3411 return verticalDirection && ((verticalDirection == "down" && isOverBottomHalf) || (verticalDirection == "up" && !isOverBottomHalf));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3412 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3413
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3414 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3415
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3416 _getDragVerticalDirection: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3417 var delta = this.positionAbs.top - this.lastPositionAbs.top;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3418 return delta != 0 && (delta > 0 ? "down" : "up");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3419 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3420
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3421 _getDragHorizontalDirection: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3422 var delta = this.positionAbs.left - this.lastPositionAbs.left;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3423 return delta != 0 && (delta > 0 ? "right" : "left");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3424 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3425
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3426 refresh: function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3427 this._refreshItems(event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3428 this.refreshPositions();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3429 return this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3430 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3431
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3432 _connectWith: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3433 var options = this.options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3434 return options.connectWith.constructor == String
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3435 ? [options.connectWith]
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3436 : options.connectWith;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3437 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3438
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3439 _getItemsAsjQuery: function(connected) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3440
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3441 var self = this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3442 var items = [];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3443 var queries = [];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3444 var connectWith = this._connectWith();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3445
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3446 if(connectWith && connected) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3447 for (var i = connectWith.length - 1; i >= 0; i--){
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3448 var cur = $(connectWith[i]);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3449 for (var j = cur.length - 1; j >= 0; j--){
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3450 var inst = $.data(cur[j], 'sortable');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3451 if(inst && inst != this && !inst.options.disabled) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3452 queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element) : $(inst.options.items, inst.element).not(".ui-sortable-helper").not('.ui-sortable-placeholder'), inst]);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3453 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3454 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3455 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3456 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3457
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3458 queries.push([$.isFunction(this.options.items) ? this.options.items.call(this.element, null, { options: this.options, item: this.currentItem }) : $(this.options.items, this.element).not(".ui-sortable-helper").not('.ui-sortable-placeholder'), this]);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3459
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3460 for (var i = queries.length - 1; i >= 0; i--){
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3461 queries[i][0].each(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3462 items.push(this);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3463 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3464 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3465
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3466 return $(items);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3467
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3468 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3469
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3470 _removeCurrentsFromItems: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3471
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3472 var list = this.currentItem.find(":data(sortable-item)");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3473
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3474 for (var i=0; i < this.items.length; i++) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3475
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3476 for (var j=0; j < list.length; j++) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3477 if(list[j] == this.items[i].item[0])
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3478 this.items.splice(i,1);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3479 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3480
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3481 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3482
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3483 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3484
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3485 _refreshItems: function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3486
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3487 this.items = [];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3488 this.containers = [this];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3489 var items = this.items;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3490 var self = this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3491 var queries = [[$.isFunction(this.options.items) ? this.options.items.call(this.element[0], event, { item: this.currentItem }) : $(this.options.items, this.element), this]];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3492 var connectWith = this._connectWith();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3493
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3494 if(connectWith) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3495 for (var i = connectWith.length - 1; i >= 0; i--){
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3496 var cur = $(connectWith[i]);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3497 for (var j = cur.length - 1; j >= 0; j--){
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3498 var inst = $.data(cur[j], 'sortable');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3499 if(inst && inst != this && !inst.options.disabled) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3500 queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element[0], event, { item: this.currentItem }) : $(inst.options.items, inst.element), inst]);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3501 this.containers.push(inst);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3502 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3503 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3504 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3505 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3506
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3507 for (var i = queries.length - 1; i >= 0; i--) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3508 var targetData = queries[i][1];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3509 var _queries = queries[i][0];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3510
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3511 for (var j=0, queriesLength = _queries.length; j < queriesLength; j++) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3512 var item = $(_queries[j]);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3513
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3514 item.data('sortable-item', targetData); // Data for target checking (mouse manager)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3515
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3516 items.push({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3517 item: item,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3518 instance: targetData,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3519 width: 0, height: 0,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3520 left: 0, top: 0
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3521 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3522 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3523 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3524
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3525 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3526
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3527 refreshPositions: function(fast) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3528
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3529 //This has to be redone because due to the item being moved out/into the offsetParent, the offsetParent's position will change
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3530 if(this.offsetParent && this.helper) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3531 this.offset.parent = this._getParentOffset();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3532 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3533
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3534 for (var i = this.items.length - 1; i >= 0; i--){
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3535 var item = this.items[i];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3536
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3537 var t = this.options.toleranceElement ? $(this.options.toleranceElement, item.item) : item.item;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3538
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3539 if (!fast) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3540 item.width = t.outerWidth();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3541 item.height = t.outerHeight();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3542 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3543
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3544 var p = t.offset();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3545 item.left = p.left;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3546 item.top = p.top;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3547 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3548
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3549 if(this.options.custom && this.options.custom.refreshContainers) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3550 this.options.custom.refreshContainers.call(this);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3551 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3552 for (var i = this.containers.length - 1; i >= 0; i--){
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3553 var p = this.containers[i].element.offset();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3554 this.containers[i].containerCache.left = p.left;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3555 this.containers[i].containerCache.top = p.top;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3556 this.containers[i].containerCache.width = this.containers[i].element.outerWidth();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3557 this.containers[i].containerCache.height = this.containers[i].element.outerHeight();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3558 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3559 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3560
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3561 return this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3562 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3563
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3564 _createPlaceholder: function(that) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3565
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3566 var self = that || this, o = self.options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3567
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3568 if(!o.placeholder || o.placeholder.constructor == String) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3569 var className = o.placeholder;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3570 o.placeholder = {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3571 element: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3572
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3573 var el = $(document.createElement(self.currentItem[0].nodeName))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3574 .addClass(className || self.currentItem[0].className+" ui-sortable-placeholder")
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3575 .removeClass("ui-sortable-helper")[0];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3576
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3577 if(!className)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3578 el.style.visibility = "hidden";
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3579
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3580 return el;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3581 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3582 update: function(container, p) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3583
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3584 // 1. If a className is set as 'placeholder option, we don't force sizes - the class is responsible for that
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3585 // 2. The option 'forcePlaceholderSize can be enabled to force it even if a class name is specified
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3586 if(className && !o.forcePlaceholderSize) return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3587
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3588 //If the element doesn't have a actual height by itself (without styles coming from a stylesheet), it receives the inline height from the dragged item
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3589 if(!p.height()) { p.height(self.currentItem.innerHeight() - parseInt(self.currentItem.css('paddingTop')||0, 10) - parseInt(self.currentItem.css('paddingBottom')||0, 10)); };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3590 if(!p.width()) { p.width(self.currentItem.innerWidth() - parseInt(self.currentItem.css('paddingLeft')||0, 10) - parseInt(self.currentItem.css('paddingRight')||0, 10)); };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3591 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3592 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3593 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3594
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3595 //Create the placeholder
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3596 self.placeholder = $(o.placeholder.element.call(self.element, self.currentItem));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3597
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3598 //Append it after the actual current item
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3599 self.currentItem.after(self.placeholder);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3600
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3601 //Update the size of the placeholder (TODO: Logic to fuzzy, see line 316/317)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3602 o.placeholder.update(self, self.placeholder);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3603
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3604 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3605
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3606 _contactContainers: function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3607
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3608 // get innermost container that intersects with item
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3609 var innermostContainer = null, innermostIndex = null;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3610
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3611
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3612 for (var i = this.containers.length - 1; i >= 0; i--){
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3613
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3614 // never consider a container that's located within the item itself
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3615 if($.ui.contains(this.currentItem[0], this.containers[i].element[0]))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3616 continue;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3617
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3618 if(this._intersectsWith(this.containers[i].containerCache)) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3619
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3620 // if we've already found a container and it's more "inner" than this, then continue
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3621 if(innermostContainer && $.ui.contains(this.containers[i].element[0], innermostContainer.element[0]))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3622 continue;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3623
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3624 innermostContainer = this.containers[i];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3625 innermostIndex = i;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3626
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3627 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3628 // container doesn't intersect. trigger "out" event if necessary
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3629 if(this.containers[i].containerCache.over) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3630 this.containers[i]._trigger("out", event, this._uiHash(this));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3631 this.containers[i].containerCache.over = 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3632 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3633 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3634
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3635 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3636
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3637 // if no intersecting containers found, return
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3638 if(!innermostContainer) return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3639
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3640 // move the item into the container if it's not there already
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3641 if(this.containers.length === 1) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3642 this.containers[innermostIndex]._trigger("over", event, this._uiHash(this));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3643 this.containers[innermostIndex].containerCache.over = 1;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3644 } else if(this.currentContainer != this.containers[innermostIndex]) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3645
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3646 //When entering a new container, we will find the item with the least distance and append our item near it
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3647 var dist = 10000; var itemWithLeastDistance = null; var base = this.positionAbs[this.containers[innermostIndex].floating ? 'left' : 'top'];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3648 for (var j = this.items.length - 1; j >= 0; j--) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3649 if(!$.ui.contains(this.containers[innermostIndex].element[0], this.items[j].item[0])) continue;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3650 var cur = this.items[j][this.containers[innermostIndex].floating ? 'left' : 'top'];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3651 if(Math.abs(cur - base) < dist) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3652 dist = Math.abs(cur - base); itemWithLeastDistance = this.items[j];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3653 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3654 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3655
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3656 if(!itemWithLeastDistance && !this.options.dropOnEmpty) //Check if dropOnEmpty is enabled
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3657 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3658
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3659 this.currentContainer = this.containers[innermostIndex];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3660 itemWithLeastDistance ? this._rearrange(event, itemWithLeastDistance, null, true) : this._rearrange(event, null, this.containers[innermostIndex].element, true);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3661 this._trigger("change", event, this._uiHash());
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3662 this.containers[innermostIndex]._trigger("change", event, this._uiHash(this));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3663
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3664 //Update the placeholder
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3665 this.options.placeholder.update(this.currentContainer, this.placeholder);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3666
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3667 this.containers[innermostIndex]._trigger("over", event, this._uiHash(this));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3668 this.containers[innermostIndex].containerCache.over = 1;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3669 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3670
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3671
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3672 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3673
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3674 _createHelper: function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3675
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3676 var o = this.options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3677 var helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event, this.currentItem])) : (o.helper == 'clone' ? this.currentItem.clone() : this.currentItem);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3678
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3679 if(!helper.parents('body').length) //Add the helper to the DOM if that didn't happen already
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3680 $(o.appendTo != 'parent' ? o.appendTo : this.currentItem[0].parentNode)[0].appendChild(helper[0]);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3681
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3682 if(helper[0] == this.currentItem[0])
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3683 this._storedCSS = { width: this.currentItem[0].style.width, height: this.currentItem[0].style.height, position: this.currentItem.css("position"), top: this.currentItem.css("top"), left: this.currentItem.css("left") };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3684
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3685 if(helper[0].style.width == '' || o.forceHelperSize) helper.width(this.currentItem.width());
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3686 if(helper[0].style.height == '' || o.forceHelperSize) helper.height(this.currentItem.height());
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3687
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3688 return helper;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3689
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3690 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3691
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3692 _adjustOffsetFromHelper: function(obj) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3693 if (typeof obj == 'string') {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3694 obj = obj.split(' ');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3695 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3696 if ($.isArray(obj)) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3697 obj = {left: +obj[0], top: +obj[1] || 0};
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3698 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3699 if ('left' in obj) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3700 this.offset.click.left = obj.left + this.margins.left;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3701 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3702 if ('right' in obj) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3703 this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3704 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3705 if ('top' in obj) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3706 this.offset.click.top = obj.top + this.margins.top;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3707 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3708 if ('bottom' in obj) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3709 this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3710 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3711 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3712
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3713 _getParentOffset: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3714
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3715
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3716 //Get the offsetParent and cache its position
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3717 this.offsetParent = this.helper.offsetParent();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3718 var po = this.offsetParent.offset();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3719
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3720 // This is a special case where we need to modify a offset calculated on start, since the following happened:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3721 // 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3722 // 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3723 // the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3724 if(this.cssPosition == 'absolute' && this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3725 po.left += this.scrollParent.scrollLeft();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3726 po.top += this.scrollParent.scrollTop();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3727 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3728
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3729 if((this.offsetParent[0] == document.body) //This needs to be actually done for all browsers, since pageX/pageY includes this information
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3730 || (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == 'html' && $.browser.msie)) //Ugly IE fix
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3731 po = { top: 0, left: 0 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3732
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3733 return {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3734 top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) || 0),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3735 left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"),10) || 0)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3736 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3737
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3738 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3739
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3740 _getRelativeOffset: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3741
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3742 if(this.cssPosition == "relative") {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3743 var p = this.currentItem.position();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3744 return {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3745 top: p.top - (parseInt(this.helper.css("top"),10) || 0) + this.scrollParent.scrollTop(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3746 left: p.left - (parseInt(this.helper.css("left"),10) || 0) + this.scrollParent.scrollLeft()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3747 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3748 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3749 return { top: 0, left: 0 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3750 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3751
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3752 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3753
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3754 _cacheMargins: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3755 this.margins = {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3756 left: (parseInt(this.currentItem.css("marginLeft"),10) || 0),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3757 top: (parseInt(this.currentItem.css("marginTop"),10) || 0)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3758 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3759 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3760
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3761 _cacheHelperProportions: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3762 this.helperProportions = {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3763 width: this.helper.outerWidth(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3764 height: this.helper.outerHeight()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3765 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3766 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3767
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3768 _setContainment: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3769
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3770 var o = this.options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3771 if(o.containment == 'parent') o.containment = this.helper[0].parentNode;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3772 if(o.containment == 'document' || o.containment == 'window') this.containment = [
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3773 0 - this.offset.relative.left - this.offset.parent.left,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3774 0 - this.offset.relative.top - this.offset.parent.top,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3775 $(o.containment == 'document' ? document : window).width() - this.helperProportions.width - this.margins.left,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3776 ($(o.containment == 'document' ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3777 ];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3778
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3779 if(!(/^(document|window|parent)$/).test(o.containment)) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3780 var ce = $(o.containment)[0];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3781 var co = $(o.containment).offset();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3782 var over = ($(ce).css("overflow") != 'hidden');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3783
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3784 this.containment = [
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3785 co.left + (parseInt($(ce).css("borderLeftWidth"),10) || 0) + (parseInt($(ce).css("paddingLeft"),10) || 0) - this.margins.left,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3786 co.top + (parseInt($(ce).css("borderTopWidth"),10) || 0) + (parseInt($(ce).css("paddingTop"),10) || 0) - this.margins.top,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3787 co.left+(over ? Math.max(ce.scrollWidth,ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"),10) || 0) - (parseInt($(ce).css("paddingRight"),10) || 0) - this.helperProportions.width - this.margins.left,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3788 co.top+(over ? Math.max(ce.scrollHeight,ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"),10) || 0) - (parseInt($(ce).css("paddingBottom"),10) || 0) - this.helperProportions.height - this.margins.top
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3789 ];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3790 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3791
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3792 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3793
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3794 _convertPositionTo: function(d, pos) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3795
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3796 if(!pos) pos = this.position;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3797 var mod = d == "absolute" ? 1 : -1;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3798 var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3799
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3800 return {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3801 top: (
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3802 pos.top // The absolute mouse position
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3803 + this.offset.relative.top * mod // Only for relative positioned nodes: Relative offset from element to offset parent
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3804 + this.offset.parent.top * mod // The offsetParent's offset without borders (offset + border)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3805 - ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3806 ),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3807 left: (
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3808 pos.left // The absolute mouse position
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3809 + this.offset.relative.left * mod // Only for relative positioned nodes: Relative offset from element to offset parent
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3810 + this.offset.parent.left * mod // The offsetParent's offset without borders (offset + border)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3811 - ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ) * mod)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3812 )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3813 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3814
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3815 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3816
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3817 _generatePosition: function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3818
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3819 var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3820
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3821 // This is another very weird special case that only happens for relative elements:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3822 // 1. If the css position is relative
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3823 // 2. and the scroll parent is the document or similar to the offset parent
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3824 // we have to refresh the relative offset during the scroll so there are no jumps
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3825 if(this.cssPosition == 'relative' && !(this.scrollParent[0] != document && this.scrollParent[0] != this.offsetParent[0])) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3826 this.offset.relative = this._getRelativeOffset();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3827 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3828
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3829 var pageX = event.pageX;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3830 var pageY = event.pageY;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3831
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3832 /*
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3833 * - Position constraining -
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3834 * Constrain the position to a mix of grid, containment.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3835 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3836
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3837 if(this.originalPosition) { //If we are not dragging yet, we won't check for options
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3838
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3839 if(this.containment) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3840 if(event.pageX - this.offset.click.left < this.containment[0]) pageX = this.containment[0] + this.offset.click.left;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3841 if(event.pageY - this.offset.click.top < this.containment[1]) pageY = this.containment[1] + this.offset.click.top;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3842 if(event.pageX - this.offset.click.left > this.containment[2]) pageX = this.containment[2] + this.offset.click.left;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3843 if(event.pageY - this.offset.click.top > this.containment[3]) pageY = this.containment[3] + this.offset.click.top;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3844 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3845
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3846 if(o.grid) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3847 var top = this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3848 pageY = this.containment ? (!(top - this.offset.click.top < this.containment[1] || top - this.offset.click.top > this.containment[3]) ? top : (!(top - this.offset.click.top < this.containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3849
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3850 var left = this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3851 pageX = this.containment ? (!(left - this.offset.click.left < this.containment[0] || left - this.offset.click.left > this.containment[2]) ? left : (!(left - this.offset.click.left < this.containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3852 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3853
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3854 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3855
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3856 return {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3857 top: (
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3858 pageY // The absolute mouse position
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3859 - this.offset.click.top // Click offset (relative to the element)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3860 - this.offset.relative.top // Only for relative positioned nodes: Relative offset from element to offset parent
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3861 - this.offset.parent.top // The offsetParent's offset without borders (offset + border)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3862 + ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3863 ),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3864 left: (
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3865 pageX // The absolute mouse position
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3866 - this.offset.click.left // Click offset (relative to the element)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3867 - this.offset.relative.left // Only for relative positioned nodes: Relative offset from element to offset parent
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3868 - this.offset.parent.left // The offsetParent's offset without borders (offset + border)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3869 + ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3870 )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3871 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3872
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3873 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3874
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3875 _rearrange: function(event, i, a, hardRefresh) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3876
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3877 a ? a[0].appendChild(this.placeholder[0]) : i.item[0].parentNode.insertBefore(this.placeholder[0], (this.direction == 'down' ? i.item[0] : i.item[0].nextSibling));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3878
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3879 //Various things done here to improve the performance:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3880 // 1. we create a setTimeout, that calls refreshPositions
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3881 // 2. on the instance, we have a counter variable, that get's higher after every append
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3882 // 3. on the local scope, we copy the counter variable, and check in the timeout, if it's still the same
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3883 // 4. this lets only the last addition to the timeout stack through
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3884 this.counter = this.counter ? ++this.counter : 1;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3885 var self = this, counter = this.counter;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3886
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3887 window.setTimeout(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3888 if(counter == self.counter) self.refreshPositions(!hardRefresh); //Precompute after each DOM insertion, NOT on mousemove
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3889 },0);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3890
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3891 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3892
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3893 _clear: function(event, noPropagation) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3894
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3895 this.reverting = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3896 // We delay all events that have to be triggered to after the point where the placeholder has been removed and
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3897 // everything else normalized again
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3898 var delayedTriggers = [], self = this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3899
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3900 // We first have to update the dom position of the actual currentItem
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3901 // Note: don't do it if the current item is already removed (by a user), or it gets reappended (see #4088)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3902 if(!this._noFinalSort && this.currentItem[0].parentNode) this.placeholder.before(this.currentItem);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3903 this._noFinalSort = null;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3904
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3905 if(this.helper[0] == this.currentItem[0]) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3906 for(var i in this._storedCSS) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3907 if(this._storedCSS[i] == 'auto' || this._storedCSS[i] == 'static') this._storedCSS[i] = '';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3908 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3909 this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3910 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3911 this.currentItem.show();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3912 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3913
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3914 if(this.fromOutside && !noPropagation) delayedTriggers.push(function(event) { this._trigger("receive", event, this._uiHash(this.fromOutside)); });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3915 if((this.fromOutside || this.domPosition.prev != this.currentItem.prev().not(".ui-sortable-helper")[0] || this.domPosition.parent != this.currentItem.parent()[0]) && !noPropagation) delayedTriggers.push(function(event) { this._trigger("update", event, this._uiHash()); }); //Trigger update callback if the DOM position has changed
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3916 if(!$.ui.contains(this.element[0], this.currentItem[0])) { //Node was moved out of the current element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3917 if(!noPropagation) delayedTriggers.push(function(event) { this._trigger("remove", event, this._uiHash()); });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3918 for (var i = this.containers.length - 1; i >= 0; i--){
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3919 if($.ui.contains(this.containers[i].element[0], this.currentItem[0]) && !noPropagation) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3920 delayedTriggers.push((function(c) { return function(event) { c._trigger("receive", event, this._uiHash(this)); }; }).call(this, this.containers[i]));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3921 delayedTriggers.push((function(c) { return function(event) { c._trigger("update", event, this._uiHash(this)); }; }).call(this, this.containers[i]));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3922 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3923 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3924 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3925
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3926 //Post events to containers
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3927 for (var i = this.containers.length - 1; i >= 0; i--){
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3928 if(!noPropagation) delayedTriggers.push((function(c) { return function(event) { c._trigger("deactivate", event, this._uiHash(this)); }; }).call(this, this.containers[i]));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3929 if(this.containers[i].containerCache.over) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3930 delayedTriggers.push((function(c) { return function(event) { c._trigger("out", event, this._uiHash(this)); }; }).call(this, this.containers[i]));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3931 this.containers[i].containerCache.over = 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3932 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3933 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3934
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3935 //Do what was originally in plugins
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3936 if(this._storedCursor) $('body').css("cursor", this._storedCursor); //Reset cursor
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3937 if(this._storedOpacity) this.helper.css("opacity", this._storedOpacity); //Reset opacity
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3938 if(this._storedZIndex) this.helper.css("zIndex", this._storedZIndex == 'auto' ? '' : this._storedZIndex); //Reset z-index
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3939
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3940 this.dragging = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3941 if(this.cancelHelperRemoval) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3942 if(!noPropagation) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3943 this._trigger("beforeStop", event, this._uiHash());
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3944 for (var i=0; i < delayedTriggers.length; i++) { delayedTriggers[i].call(this, event); }; //Trigger all delayed events
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3945 this._trigger("stop", event, this._uiHash());
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3946 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3947 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3948 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3949
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3950 if(!noPropagation) this._trigger("beforeStop", event, this._uiHash());
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3951
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3952 //$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node!
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3953 this.placeholder[0].parentNode.removeChild(this.placeholder[0]);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3954
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3955 if(this.helper[0] != this.currentItem[0]) this.helper.remove(); this.helper = null;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3956
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3957 if(!noPropagation) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3958 for (var i=0; i < delayedTriggers.length; i++) { delayedTriggers[i].call(this, event); }; //Trigger all delayed events
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3959 this._trigger("stop", event, this._uiHash());
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3960 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3961
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3962 this.fromOutside = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3963 return true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3964
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3965 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3966
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3967 _trigger: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3968 if ($.Widget.prototype._trigger.apply(this, arguments) === false) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3969 this.cancel();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3970 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3971 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3972
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3973 _uiHash: function(inst) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3974 var self = inst || this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3975 return {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3976 helper: self.helper,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3977 placeholder: self.placeholder || $([]),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3978 position: self.position,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3979 originalPosition: self.originalPosition,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3980 offset: self.positionAbs,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3981 item: self.currentItem,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3982 sender: inst ? inst.element : null
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3983 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3984 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3985
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3986 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3987
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3988 $.extend($.ui.sortable, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3989 version: "1.8.7"
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3990 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3991
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3992 })(jQuery);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3993 /*
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3994 * Note: While Microsoft is not the author of this file, Microsoft is
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3995 * offering you a license subject to the terms of the Microsoft Software
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3996 * License Terms for Microsoft ASP.NET Model View Controller 3.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3997 * Microsoft reserves all other rights. The notices below are provided
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3998 * for informational purposes only and are not the license terms under
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
3999 * which Microsoft distributed this file.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4000 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4001 * jQuery UI Effects 1.8.7
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4002 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4003 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4004 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4005 * http://docs.jquery.com/UI/Effects/
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4006 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4007 ;jQuery.effects || (function($, undefined) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4008
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4009 $.effects = {};
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4010
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4011
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4012
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4013 /******************************************************************************/
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4014 /****************************** COLOR ANIMATIONS ******************************/
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4015 /******************************************************************************/
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4016
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4017 // override the animation for color styles
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4018 $.each(['backgroundColor', 'borderBottomColor', 'borderLeftColor',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4019 'borderRightColor', 'borderTopColor', 'borderColor', 'color', 'outlineColor'],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4020 function(i, attr) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4021 $.fx.step[attr] = function(fx) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4022 if (!fx.colorInit) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4023 fx.start = getColor(fx.elem, attr);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4024 fx.end = getRGB(fx.end);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4025 fx.colorInit = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4026 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4027
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4028 fx.elem.style[attr] = 'rgb(' +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4029 Math.max(Math.min(parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0], 10), 255), 0) + ',' +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4030 Math.max(Math.min(parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1], 10), 255), 0) + ',' +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4031 Math.max(Math.min(parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2], 10), 255), 0) + ')';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4032 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4033 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4034
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4035 // Color Conversion functions from highlightFade
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4036 // By Blair Mitchelmore
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4037 // http://jquery.offput.ca/highlightFade/
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4038
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4039 // Parse strings looking for color tuples [255,255,255]
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4040 function getRGB(color) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4041 var result;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4042
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4043 // Check if we're already dealing with an array of colors
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4044 if ( color && color.constructor == Array && color.length == 3 )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4045 return color;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4046
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4047 // Look for rgb(num,num,num)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4048 if (result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4049 return [parseInt(result[1],10), parseInt(result[2],10), parseInt(result[3],10)];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4050
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4051 // Look for rgb(num%,num%,num%)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4052 if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4053 return [parseFloat(result[1])*2.55, parseFloat(result[2])*2.55, parseFloat(result[3])*2.55];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4054
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4055 // Look for #a0b1c2
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4056 if (result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4057 return [parseInt(result[1],16), parseInt(result[2],16), parseInt(result[3],16)];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4058
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4059 // Look for #fff
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4060 if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4061 return [parseInt(result[1]+result[1],16), parseInt(result[2]+result[2],16), parseInt(result[3]+result[3],16)];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4062
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4063 // Look for rgba(0, 0, 0, 0) == transparent in Safari 3
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4064 if (result = /rgba\(0, 0, 0, 0\)/.exec(color))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4065 return colors['transparent'];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4066
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4067 // Otherwise, we're most likely dealing with a named color
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4068 return colors[$.trim(color).toLowerCase()];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4069 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4070
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4071 function getColor(elem, attr) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4072 var color;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4073
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4074 do {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4075 color = $.curCSS(elem, attr);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4076
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4077 // Keep going until we find an element that has color, or we hit the body
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4078 if ( color != '' && color != 'transparent' || $.nodeName(elem, "body") )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4079 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4080
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4081 attr = "backgroundColor";
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4082 } while ( elem = elem.parentNode );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4083
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4084 return getRGB(color);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4085 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4086
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4087 // Some named colors to work with
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4088 // From Interface by Stefan Petre
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4089 // http://interface.eyecon.ro/
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4090
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4091 var colors = {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4092 aqua:[0,255,255],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4093 azure:[240,255,255],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4094 beige:[245,245,220],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4095 black:[0,0,0],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4096 blue:[0,0,255],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4097 brown:[165,42,42],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4098 cyan:[0,255,255],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4099 darkblue:[0,0,139],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4100 darkcyan:[0,139,139],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4101 darkgrey:[169,169,169],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4102 darkgreen:[0,100,0],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4103 darkkhaki:[189,183,107],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4104 darkmagenta:[139,0,139],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4105 darkolivegreen:[85,107,47],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4106 darkorange:[255,140,0],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4107 darkorchid:[153,50,204],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4108 darkred:[139,0,0],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4109 darksalmon:[233,150,122],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4110 darkviolet:[148,0,211],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4111 fuchsia:[255,0,255],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4112 gold:[255,215,0],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4113 green:[0,128,0],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4114 indigo:[75,0,130],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4115 khaki:[240,230,140],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4116 lightblue:[173,216,230],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4117 lightcyan:[224,255,255],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4118 lightgreen:[144,238,144],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4119 lightgrey:[211,211,211],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4120 lightpink:[255,182,193],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4121 lightyellow:[255,255,224],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4122 lime:[0,255,0],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4123 magenta:[255,0,255],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4124 maroon:[128,0,0],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4125 navy:[0,0,128],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4126 olive:[128,128,0],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4127 orange:[255,165,0],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4128 pink:[255,192,203],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4129 purple:[128,0,128],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4130 violet:[128,0,128],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4131 red:[255,0,0],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4132 silver:[192,192,192],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4133 white:[255,255,255],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4134 yellow:[255,255,0],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4135 transparent: [255,255,255]
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4136 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4137
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4138
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4139
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4140 /******************************************************************************/
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4141 /****************************** CLASS ANIMATIONS ******************************/
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4142 /******************************************************************************/
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4143
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4144 var classAnimationActions = ['add', 'remove', 'toggle'],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4145 shorthandStyles = {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4146 border: 1,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4147 borderBottom: 1,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4148 borderColor: 1,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4149 borderLeft: 1,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4150 borderRight: 1,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4151 borderTop: 1,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4152 borderWidth: 1,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4153 margin: 1,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4154 padding: 1
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4155 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4156
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4157 function getElementStyles() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4158 var style = document.defaultView
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4159 ? document.defaultView.getComputedStyle(this, null)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4160 : this.currentStyle,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4161 newStyle = {},
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4162 key,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4163 camelCase;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4164
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4165 // webkit enumerates style porperties
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4166 if (style && style.length && style[0] && style[style[0]]) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4167 var len = style.length;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4168 while (len--) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4169 key = style[len];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4170 if (typeof style[key] == 'string') {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4171 camelCase = key.replace(/\-(\w)/g, function(all, letter){
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4172 return letter.toUpperCase();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4173 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4174 newStyle[camelCase] = style[key];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4175 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4176 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4177 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4178 for (key in style) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4179 if (typeof style[key] === 'string') {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4180 newStyle[key] = style[key];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4181 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4182 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4183 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4184
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4185 return newStyle;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4186 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4187
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4188 function filterStyles(styles) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4189 var name, value;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4190 for (name in styles) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4191 value = styles[name];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4192 if (
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4193 // ignore null and undefined values
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4194 value == null ||
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4195 // ignore functions (when does this occur?)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4196 $.isFunction(value) ||
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4197 // shorthand styles that need to be expanded
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4198 name in shorthandStyles ||
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4199 // ignore scrollbars (break in IE)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4200 (/scrollbar/).test(name) ||
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4201
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4202 // only colors or values that can be converted to numbers
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4203 (!(/color/i).test(name) && isNaN(parseFloat(value)))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4204 ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4205 delete styles[name];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4206 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4207 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4208
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4209 return styles;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4210 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4211
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4212 function styleDifference(oldStyle, newStyle) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4213 var diff = { _: 0 }, // http://dev.jquery.com/ticket/5459
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4214 name;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4215
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4216 for (name in newStyle) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4217 if (oldStyle[name] != newStyle[name]) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4218 diff[name] = newStyle[name];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4219 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4220 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4221
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4222 return diff;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4223 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4224
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4225 $.effects.animateClass = function(value, duration, easing, callback) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4226 if ($.isFunction(easing)) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4227 callback = easing;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4228 easing = null;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4229 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4230
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4231 return this.each(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4232 $.queue(this, 'fx', function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4233 var that = $(this),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4234 originalStyleAttr = that.attr('style') || ' ',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4235 originalStyle = filterStyles(getElementStyles.call(this)),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4236 newStyle,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4237 className = that.attr('className');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4238
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4239 $.each(classAnimationActions, function(i, action) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4240 if (value[action]) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4241 that[action + 'Class'](value[action]);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4242 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4243 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4244 newStyle = filterStyles(getElementStyles.call(this));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4245 that.attr('className', className);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4246
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4247 that.animate(styleDifference(originalStyle, newStyle), duration, easing, function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4248 $.each(classAnimationActions, function(i, action) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4249 if (value[action]) { that[action + 'Class'](value[action]); }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4250 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4251 // work around bug in IE by clearing the cssText before setting it
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4252 if (typeof that.attr('style') == 'object') {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4253 that.attr('style').cssText = '';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4254 that.attr('style').cssText = originalStyleAttr;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4255 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4256 that.attr('style', originalStyleAttr);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4257 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4258 if (callback) { callback.apply(this, arguments); }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4259 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4260
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4261 // $.animate adds a function to the end of the queue
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4262 // but we want it at the front
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4263 var queue = $.queue(this),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4264 anim = queue.splice(queue.length - 1, 1)[0];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4265 queue.splice(1, 0, anim);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4266 $.dequeue(this);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4267 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4268 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4269 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4270
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4271 $.fn.extend({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4272 _addClass: $.fn.addClass,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4273 addClass: function(classNames, speed, easing, callback) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4274 return speed ? $.effects.animateClass.apply(this, [{ add: classNames },speed,easing,callback]) : this._addClass(classNames);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4275 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4276
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4277 _removeClass: $.fn.removeClass,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4278 removeClass: function(classNames,speed,easing,callback) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4279 return speed ? $.effects.animateClass.apply(this, [{ remove: classNames },speed,easing,callback]) : this._removeClass(classNames);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4280 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4281
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4282 _toggleClass: $.fn.toggleClass,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4283 toggleClass: function(classNames, force, speed, easing, callback) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4284 if ( typeof force == "boolean" || force === undefined ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4285 if ( !speed ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4286 // without speed parameter;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4287 return this._toggleClass(classNames, force);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4288 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4289 return $.effects.animateClass.apply(this, [(force?{add:classNames}:{remove:classNames}),speed,easing,callback]);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4290 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4291 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4292 // without switch parameter;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4293 return $.effects.animateClass.apply(this, [{ toggle: classNames },force,speed,easing]);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4294 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4295 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4296
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4297 switchClass: function(remove,add,speed,easing,callback) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4298 return $.effects.animateClass.apply(this, [{ add: add, remove: remove },speed,easing,callback]);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4299 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4300 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4301
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4302
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4303
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4304 /******************************************************************************/
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4305 /*********************************** EFFECTS **********************************/
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4306 /******************************************************************************/
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4307
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4308 $.extend($.effects, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4309 version: "1.8.7",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4310
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4311 // Saves a set of properties in a data storage
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4312 save: function(element, set) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4313 for(var i=0; i < set.length; i++) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4314 if(set[i] !== null) element.data("ec.storage."+set[i], element[0].style[set[i]]);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4315 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4316 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4317
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4318 // Restores a set of previously saved properties from a data storage
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4319 restore: function(element, set) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4320 for(var i=0; i < set.length; i++) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4321 if(set[i] !== null) element.css(set[i], element.data("ec.storage."+set[i]));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4322 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4323 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4324
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4325 setMode: function(el, mode) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4326 if (mode == 'toggle') mode = el.is(':hidden') ? 'show' : 'hide'; // Set for toggle
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4327 return mode;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4328 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4329
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4330 getBaseline: function(origin, original) { // Translates a [top,left] array into a baseline value
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4331 // this should be a little more flexible in the future to handle a string & hash
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4332 var y, x;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4333 switch (origin[0]) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4334 case 'top': y = 0; break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4335 case 'middle': y = 0.5; break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4336 case 'bottom': y = 1; break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4337 default: y = origin[0] / original.height;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4338 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4339 switch (origin[1]) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4340 case 'left': x = 0; break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4341 case 'center': x = 0.5; break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4342 case 'right': x = 1; break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4343 default: x = origin[1] / original.width;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4344 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4345 return {x: x, y: y};
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4346 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4347
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4348 // Wraps the element around a wrapper that copies position properties
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4349 createWrapper: function(element) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4350
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4351 // if the element is already wrapped, return it
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4352 if (element.parent().is('.ui-effects-wrapper')) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4353 return element.parent();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4354 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4355
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4356 // wrap the element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4357 var props = {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4358 width: element.outerWidth(true),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4359 height: element.outerHeight(true),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4360 'float': element.css('float')
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4361 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4362 wrapper = $('<div></div>')
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4363 .addClass('ui-effects-wrapper')
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4364 .css({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4365 fontSize: '100%',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4366 background: 'transparent',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4367 border: 'none',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4368 margin: 0,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4369 padding: 0
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4370 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4371
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4372 element.wrap(wrapper);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4373 wrapper = element.parent(); //Hotfix for jQuery 1.4 since some change in wrap() seems to actually loose the reference to the wrapped element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4374
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4375 // transfer positioning properties to the wrapper
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4376 if (element.css('position') == 'static') {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4377 wrapper.css({ position: 'relative' });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4378 element.css({ position: 'relative' });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4379 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4380 $.extend(props, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4381 position: element.css('position'),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4382 zIndex: element.css('z-index')
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4383 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4384 $.each(['top', 'left', 'bottom', 'right'], function(i, pos) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4385 props[pos] = element.css(pos);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4386 if (isNaN(parseInt(props[pos], 10))) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4387 props[pos] = 'auto';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4388 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4389 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4390 element.css({position: 'relative', top: 0, left: 0 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4391 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4392
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4393 return wrapper.css(props).show();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4394 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4395
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4396 removeWrapper: function(element) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4397 if (element.parent().is('.ui-effects-wrapper'))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4398 return element.parent().replaceWith(element);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4399 return element;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4400 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4401
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4402 setTransition: function(element, list, factor, value) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4403 value = value || {};
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4404 $.each(list, function(i, x){
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4405 unit = element.cssUnit(x);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4406 if (unit[0] > 0) value[x] = unit[0] * factor + unit[1];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4407 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4408 return value;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4409 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4410 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4411
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4412
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4413 function _normalizeArguments(effect, options, speed, callback) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4414 // shift params for method overloading
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4415 if (typeof effect == 'object') {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4416 callback = options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4417 speed = null;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4418 options = effect;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4419 effect = options.effect;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4420 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4421 if ($.isFunction(options)) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4422 callback = options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4423 speed = null;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4424 options = {};
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4425 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4426 if (typeof options == 'number' || $.fx.speeds[options]) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4427 callback = speed;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4428 speed = options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4429 options = {};
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4430 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4431 if ($.isFunction(speed)) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4432 callback = speed;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4433 speed = null;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4434 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4435
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4436 options = options || {};
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4437
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4438 speed = speed || options.duration;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4439 speed = $.fx.off ? 0 : typeof speed == 'number'
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4440 ? speed : speed in $.fx.speeds ? $.fx.speeds[speed] : $.fx.speeds._default;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4441
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4442 callback = callback || options.complete;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4443
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4444 return [effect, options, speed, callback];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4445 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4446
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4447 function standardSpeed( speed ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4448 // valid standard speeds
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4449 if ( !speed || typeof speed === "number" || $.fx.speeds[ speed ] ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4450 return true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4451 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4452
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4453 // invalid strings - treat as "normal" speed
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4454 if ( typeof speed === "string" && !$.effects[ speed ] ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4455 return true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4456 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4457
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4458 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4459 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4460
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4461 $.fn.extend({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4462 effect: function(effect, options, speed, callback) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4463 var args = _normalizeArguments.apply(this, arguments),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4464 // TODO: make effects take actual parameters instead of a hash
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4465 args2 = {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4466 options: args[1],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4467 duration: args[2],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4468 callback: args[3]
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4469 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4470 mode = args2.options.mode,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4471 effectMethod = $.effects[effect];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4472
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4473 if ( $.fx.off || !effectMethod ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4474 // delegate to the original method (e.g., .show()) if possible
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4475 if ( mode ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4476 return this[ mode ]( args2.duration, args2.callback );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4477 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4478 return this.each(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4479 if ( args2.callback ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4480 args2.callback.call( this );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4481 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4482 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4483 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4484 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4485
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4486 return effectMethod.call(this, args2);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4487 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4488
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4489 _show: $.fn.show,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4490 show: function(speed) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4491 if ( standardSpeed( speed ) ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4492 return this._show.apply(this, arguments);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4493 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4494 var args = _normalizeArguments.apply(this, arguments);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4495 args[1].mode = 'show';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4496 return this.effect.apply(this, args);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4497 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4498 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4499
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4500 _hide: $.fn.hide,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4501 hide: function(speed) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4502 if ( standardSpeed( speed ) ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4503 return this._hide.apply(this, arguments);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4504 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4505 var args = _normalizeArguments.apply(this, arguments);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4506 args[1].mode = 'hide';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4507 return this.effect.apply(this, args);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4508 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4509 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4510
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4511 // jQuery core overloads toggle and creates _toggle
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4512 __toggle: $.fn.toggle,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4513 toggle: function(speed) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4514 if ( standardSpeed( speed ) || typeof speed === "boolean" || $.isFunction( speed ) ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4515 return this.__toggle.apply(this, arguments);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4516 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4517 var args = _normalizeArguments.apply(this, arguments);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4518 args[1].mode = 'toggle';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4519 return this.effect.apply(this, args);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4520 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4521 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4522
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4523 // helper functions
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4524 cssUnit: function(key) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4525 var style = this.css(key), val = [];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4526 $.each( ['em','px','%','pt'], function(i, unit){
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4527 if(style.indexOf(unit) > 0)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4528 val = [parseFloat(style), unit];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4529 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4530 return val;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4531 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4532 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4533
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4534
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4535
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4536 /******************************************************************************/
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4537 /*********************************** EASING ***********************************/
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4538 /******************************************************************************/
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4539
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4540 /*
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4541 * Note: While Microsoft is not the author of this file, Microsoft is
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4542 * offering you a license subject to the terms of the Microsoft Software
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4543 * License Terms for Microsoft ASP.NET Model View Controller 3.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4544 * Microsoft reserves all other rights. The notices below are provided
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4545 * for informational purposes only and are not the license terms under
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4546 * which Microsoft distributed this file.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4547 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4548 * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4549 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4550 * Uses the built in easing capabilities added In jQuery 1.1
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4551 * to offer multiple easing options
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4552 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4553 * Copyright 2008 George McGinley Smith
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4554 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4555 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4556
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4557 // t: current time, b: begInnIng value, c: change In value, d: duration
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4558 $.easing.jswing = $.easing.swing;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4559
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4560 $.extend($.easing,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4561 {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4562 def: 'easeOutQuad',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4563 swing: function (x, t, b, c, d) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4564 //alert($.easing.default);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4565 return $.easing[$.easing.def](x, t, b, c, d);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4566 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4567 easeInQuad: function (x, t, b, c, d) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4568 return c*(t/=d)*t + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4569 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4570 easeOutQuad: function (x, t, b, c, d) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4571 return -c *(t/=d)*(t-2) + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4572 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4573 easeInOutQuad: function (x, t, b, c, d) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4574 if ((t/=d/2) < 1) return c/2*t*t + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4575 return -c/2 * ((--t)*(t-2) - 1) + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4576 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4577 easeInCubic: function (x, t, b, c, d) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4578 return c*(t/=d)*t*t + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4579 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4580 easeOutCubic: function (x, t, b, c, d) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4581 return c*((t=t/d-1)*t*t + 1) + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4582 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4583 easeInOutCubic: function (x, t, b, c, d) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4584 if ((t/=d/2) < 1) return c/2*t*t*t + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4585 return c/2*((t-=2)*t*t + 2) + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4586 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4587 easeInQuart: function (x, t, b, c, d) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4588 return c*(t/=d)*t*t*t + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4589 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4590 easeOutQuart: function (x, t, b, c, d) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4591 return -c * ((t=t/d-1)*t*t*t - 1) + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4592 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4593 easeInOutQuart: function (x, t, b, c, d) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4594 if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4595 return -c/2 * ((t-=2)*t*t*t - 2) + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4596 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4597 easeInQuint: function (x, t, b, c, d) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4598 return c*(t/=d)*t*t*t*t + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4599 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4600 easeOutQuint: function (x, t, b, c, d) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4601 return c*((t=t/d-1)*t*t*t*t + 1) + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4602 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4603 easeInOutQuint: function (x, t, b, c, d) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4604 if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4605 return c/2*((t-=2)*t*t*t*t + 2) + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4606 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4607 easeInSine: function (x, t, b, c, d) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4608 return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4609 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4610 easeOutSine: function (x, t, b, c, d) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4611 return c * Math.sin(t/d * (Math.PI/2)) + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4612 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4613 easeInOutSine: function (x, t, b, c, d) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4614 return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4615 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4616 easeInExpo: function (x, t, b, c, d) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4617 return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4618 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4619 easeOutExpo: function (x, t, b, c, d) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4620 return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4621 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4622 easeInOutExpo: function (x, t, b, c, d) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4623 if (t==0) return b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4624 if (t==d) return b+c;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4625 if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4626 return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4627 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4628 easeInCirc: function (x, t, b, c, d) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4629 return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4630 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4631 easeOutCirc: function (x, t, b, c, d) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4632 return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4633 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4634 easeInOutCirc: function (x, t, b, c, d) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4635 if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4636 return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4637 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4638 easeInElastic: function (x, t, b, c, d) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4639 var s=1.70158;var p=0;var a=c;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4640 if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4641 if (a < Math.abs(c)) { a=c; var s=p/4; }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4642 else var s = p/(2*Math.PI) * Math.asin (c/a);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4643 return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4644 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4645 easeOutElastic: function (x, t, b, c, d) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4646 var s=1.70158;var p=0;var a=c;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4647 if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4648 if (a < Math.abs(c)) { a=c; var s=p/4; }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4649 else var s = p/(2*Math.PI) * Math.asin (c/a);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4650 return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4651 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4652 easeInOutElastic: function (x, t, b, c, d) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4653 var s=1.70158;var p=0;var a=c;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4654 if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4655 if (a < Math.abs(c)) { a=c; var s=p/4; }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4656 else var s = p/(2*Math.PI) * Math.asin (c/a);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4657 if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4658 return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4659 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4660 easeInBack: function (x, t, b, c, d, s) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4661 if (s == undefined) s = 1.70158;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4662 return c*(t/=d)*t*((s+1)*t - s) + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4663 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4664 easeOutBack: function (x, t, b, c, d, s) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4665 if (s == undefined) s = 1.70158;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4666 return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4667 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4668 easeInOutBack: function (x, t, b, c, d, s) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4669 if (s == undefined) s = 1.70158;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4670 if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4671 return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4672 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4673 easeInBounce: function (x, t, b, c, d) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4674 return c - $.easing.easeOutBounce (x, d-t, 0, c, d) + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4675 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4676 easeOutBounce: function (x, t, b, c, d) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4677 if ((t/=d) < (1/2.75)) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4678 return c*(7.5625*t*t) + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4679 } else if (t < (2/2.75)) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4680 return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4681 } else if (t < (2.5/2.75)) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4682 return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4683 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4684 return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4685 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4686 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4687 easeInOutBounce: function (x, t, b, c, d) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4688 if (t < d/2) return $.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4689 return $.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4690 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4691 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4692
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4693 /*
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4694 * Note: While Microsoft is not the author of this file, Microsoft is
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4695 * offering you a license subject to the terms of the Microsoft Software
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4696 * License Terms for Microsoft ASP.NET Model View Controller 3.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4697 * Microsoft reserves all other rights. The notices below are provided
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4698 * for informational purposes only and are not the license terms under
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4699 * which Microsoft distributed this file.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4700 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4701 * Copyright 2001 Robert Penner
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4702 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4703 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4704
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4705 })(jQuery);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4706 /*
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4707 * Note: While Microsoft is not the author of this file, Microsoft is
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4708 * offering you a license subject to the terms of the Microsoft Software
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4709 * License Terms for Microsoft ASP.NET Model View Controller 3.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4710 * Microsoft reserves all other rights. The notices below are provided
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4711 * for informational purposes only and are not the license terms under
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4712 * which Microsoft distributed this file.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4713 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4714 * jQuery UI Effects Blind 1.8.7
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4715 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4716 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4717 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4718 * http://docs.jquery.com/UI/Effects/Blind
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4719 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4720 * Depends:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4721 * jquery.effects.core.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4722 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4723 (function( $, undefined ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4724
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4725 $.effects.blind = function(o) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4726
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4727 return this.queue(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4728
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4729 // Create element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4730 var el = $(this), props = ['position','top','left'];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4731
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4732 // Set options
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4733 var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4734 var direction = o.options.direction || 'vertical'; // Default direction
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4735
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4736 // Adjust
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4737 $.effects.save(el, props); el.show(); // Save & Show
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4738 var wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4739 var ref = (direction == 'vertical') ? 'height' : 'width';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4740 var distance = (direction == 'vertical') ? wrapper.height() : wrapper.width();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4741 if(mode == 'show') wrapper.css(ref, 0); // Shift
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4742
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4743 // Animation
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4744 var animation = {};
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4745 animation[ref] = mode == 'show' ? distance : 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4746
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4747 // Animate
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4748 wrapper.animate(animation, o.duration, o.options.easing, function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4749 if(mode == 'hide') el.hide(); // Hide
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4750 $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4751 if(o.callback) o.callback.apply(el[0], arguments); // Callback
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4752 el.dequeue();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4753 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4754
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4755 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4756
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4757 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4758
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4759 })(jQuery);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4760 /*
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4761 * Note: While Microsoft is not the author of this file, Microsoft is
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4762 * offering you a license subject to the terms of the Microsoft Software
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4763 * License Terms for Microsoft ASP.NET Model View Controller 3.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4764 * Microsoft reserves all other rights. The notices below are provided
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4765 * for informational purposes only and are not the license terms under
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4766 * which Microsoft distributed this file.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4767 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4768 * jQuery UI Effects Bounce 1.8.7
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4769 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4770 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4771 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4772 * http://docs.jquery.com/UI/Effects/Bounce
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4773 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4774 * Depends:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4775 * jquery.effects.core.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4776 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4777 (function( $, undefined ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4778
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4779 $.effects.bounce = function(o) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4780
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4781 return this.queue(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4782
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4783 // Create element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4784 var el = $(this), props = ['position','top','left'];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4785
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4786 // Set options
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4787 var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4788 var direction = o.options.direction || 'up'; // Default direction
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4789 var distance = o.options.distance || 20; // Default distance
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4790 var times = o.options.times || 5; // Default # of times
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4791 var speed = o.duration || 250; // Default speed per bounce
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4792 if (/show|hide/.test(mode)) props.push('opacity'); // Avoid touching opacity to prevent clearType and PNG issues in IE
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4793
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4794 // Adjust
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4795 $.effects.save(el, props); el.show(); // Save & Show
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4796 $.effects.createWrapper(el); // Create Wrapper
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4797 var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4798 var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4799 var distance = o.options.distance || (ref == 'top' ? el.outerHeight({margin:true}) / 3 : el.outerWidth({margin:true}) / 3);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4800 if (mode == 'show') el.css('opacity', 0).css(ref, motion == 'pos' ? -distance : distance); // Shift
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4801 if (mode == 'hide') distance = distance / (times * 2);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4802 if (mode != 'hide') times--;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4803
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4804 // Animate
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4805 if (mode == 'show') { // Show Bounce
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4806 var animation = {opacity: 1};
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4807 animation[ref] = (motion == 'pos' ? '+=' : '-=') + distance;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4808 el.animate(animation, speed / 2, o.options.easing);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4809 distance = distance / 2;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4810 times--;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4811 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4812 for (var i = 0; i < times; i++) { // Bounces
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4813 var animation1 = {}, animation2 = {};
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4814 animation1[ref] = (motion == 'pos' ? '-=' : '+=') + distance;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4815 animation2[ref] = (motion == 'pos' ? '+=' : '-=') + distance;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4816 el.animate(animation1, speed / 2, o.options.easing).animate(animation2, speed / 2, o.options.easing);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4817 distance = (mode == 'hide') ? distance * 2 : distance / 2;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4818 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4819 if (mode == 'hide') { // Last Bounce
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4820 var animation = {opacity: 0};
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4821 animation[ref] = (motion == 'pos' ? '-=' : '+=') + distance;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4822 el.animate(animation, speed / 2, o.options.easing, function(){
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4823 el.hide(); // Hide
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4824 $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4825 if(o.callback) o.callback.apply(this, arguments); // Callback
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4826 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4827 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4828 var animation1 = {}, animation2 = {};
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4829 animation1[ref] = (motion == 'pos' ? '-=' : '+=') + distance;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4830 animation2[ref] = (motion == 'pos' ? '+=' : '-=') + distance;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4831 el.animate(animation1, speed / 2, o.options.easing).animate(animation2, speed / 2, o.options.easing, function(){
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4832 $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4833 if(o.callback) o.callback.apply(this, arguments); // Callback
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4834 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4835 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4836 el.queue('fx', function() { el.dequeue(); });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4837 el.dequeue();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4838 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4839
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4840 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4841
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4842 })(jQuery);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4843 /*
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4844 * Note: While Microsoft is not the author of this file, Microsoft is
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4845 * offering you a license subject to the terms of the Microsoft Software
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4846 * License Terms for Microsoft ASP.NET Model View Controller 3.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4847 * Microsoft reserves all other rights. The notices below are provided
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4848 * for informational purposes only and are not the license terms under
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4849 * which Microsoft distributed this file.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4850 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4851 * jQuery UI Effects Clip 1.8.7
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4852 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4853 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4854 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4855 * http://docs.jquery.com/UI/Effects/Clip
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4856 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4857 * Depends:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4858 * jquery.effects.core.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4859 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4860 (function( $, undefined ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4861
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4862 $.effects.clip = function(o) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4863
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4864 return this.queue(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4865
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4866 // Create element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4867 var el = $(this), props = ['position','top','left','height','width'];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4868
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4869 // Set options
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4870 var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4871 var direction = o.options.direction || 'vertical'; // Default direction
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4872
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4873 // Adjust
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4874 $.effects.save(el, props); el.show(); // Save & Show
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4875 var wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4876 var animate = el[0].tagName == 'IMG' ? wrapper : el;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4877 var ref = {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4878 size: (direction == 'vertical') ? 'height' : 'width',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4879 position: (direction == 'vertical') ? 'top' : 'left'
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4880 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4881 var distance = (direction == 'vertical') ? animate.height() : animate.width();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4882 if(mode == 'show') { animate.css(ref.size, 0); animate.css(ref.position, distance / 2); } // Shift
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4883
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4884 // Animation
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4885 var animation = {};
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4886 animation[ref.size] = mode == 'show' ? distance : 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4887 animation[ref.position] = mode == 'show' ? 0 : distance / 2;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4888
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4889 // Animate
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4890 animate.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4891 if(mode == 'hide') el.hide(); // Hide
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4892 $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4893 if(o.callback) o.callback.apply(el[0], arguments); // Callback
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4894 el.dequeue();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4895 }});
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4896
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4897 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4898
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4899 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4900
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4901 })(jQuery);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4902 /*
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4903 * Note: While Microsoft is not the author of this file, Microsoft is
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4904 * offering you a license subject to the terms of the Microsoft Software
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4905 * License Terms for Microsoft ASP.NET Model View Controller 3.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4906 * Microsoft reserves all other rights. The notices below are provided
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4907 * for informational purposes only and are not the license terms under
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4908 * which Microsoft distributed this file.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4909 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4910 * jQuery UI Effects Drop 1.8.7
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4911 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4912 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4913 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4914 * http://docs.jquery.com/UI/Effects/Drop
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4915 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4916 * Depends:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4917 * jquery.effects.core.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4918 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4919 (function( $, undefined ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4920
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4921 $.effects.drop = function(o) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4922
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4923 return this.queue(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4924
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4925 // Create element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4926 var el = $(this), props = ['position','top','left','opacity'];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4927
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4928 // Set options
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4929 var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4930 var direction = o.options.direction || 'left'; // Default Direction
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4931
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4932 // Adjust
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4933 $.effects.save(el, props); el.show(); // Save & Show
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4934 $.effects.createWrapper(el); // Create Wrapper
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4935 var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4936 var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4937 var distance = o.options.distance || (ref == 'top' ? el.outerHeight({margin:true}) / 2 : el.outerWidth({margin:true}) / 2);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4938 if (mode == 'show') el.css('opacity', 0).css(ref, motion == 'pos' ? -distance : distance); // Shift
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4939
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4940 // Animation
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4941 var animation = {opacity: mode == 'show' ? 1 : 0};
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4942 animation[ref] = (mode == 'show' ? (motion == 'pos' ? '+=' : '-=') : (motion == 'pos' ? '-=' : '+=')) + distance;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4943
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4944 // Animate
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4945 el.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4946 if(mode == 'hide') el.hide(); // Hide
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4947 $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4948 if(o.callback) o.callback.apply(this, arguments); // Callback
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4949 el.dequeue();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4950 }});
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4951
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4952 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4953
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4954 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4955
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4956 })(jQuery);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4957 /*
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4958 * Note: While Microsoft is not the author of this file, Microsoft is
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4959 * offering you a license subject to the terms of the Microsoft Software
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4960 * License Terms for Microsoft ASP.NET Model View Controller 3.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4961 * Microsoft reserves all other rights. The notices below are provided
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4962 * for informational purposes only and are not the license terms under
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4963 * which Microsoft distributed this file.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4964 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4965 * jQuery UI Effects Explode 1.8.7
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4966 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4967 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4968 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4969 * http://docs.jquery.com/UI/Effects/Explode
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4970 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4971 * Depends:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4972 * jquery.effects.core.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4973 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4974 (function( $, undefined ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4975
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4976 $.effects.explode = function(o) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4977
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4978 return this.queue(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4979
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4980 var rows = o.options.pieces ? Math.round(Math.sqrt(o.options.pieces)) : 3;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4981 var cells = o.options.pieces ? Math.round(Math.sqrt(o.options.pieces)) : 3;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4982
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4983 o.options.mode = o.options.mode == 'toggle' ? ($(this).is(':visible') ? 'hide' : 'show') : o.options.mode;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4984 var el = $(this).show().css('visibility', 'hidden');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4985 var offset = el.offset();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4986
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4987 //Substract the margins - not fixing the problem yet.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4988 offset.top -= parseInt(el.css("marginTop"),10) || 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4989 offset.left -= parseInt(el.css("marginLeft"),10) || 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4990
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4991 var width = el.outerWidth(true);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4992 var height = el.outerHeight(true);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4993
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4994 for(var i=0;i<rows;i++) { // =
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4995 for(var j=0;j<cells;j++) { // ||
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4996 el
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4997 .clone()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4998 .appendTo('body')
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
4999 .wrap('<div></div>')
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5000 .css({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5001 position: 'absolute',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5002 visibility: 'visible',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5003 left: -j*(width/cells),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5004 top: -i*(height/rows)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5005 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5006 .parent()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5007 .addClass('ui-effects-explode')
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5008 .css({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5009 position: 'absolute',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5010 overflow: 'hidden',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5011 width: width/cells,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5012 height: height/rows,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5013 left: offset.left + j*(width/cells) + (o.options.mode == 'show' ? (j-Math.floor(cells/2))*(width/cells) : 0),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5014 top: offset.top + i*(height/rows) + (o.options.mode == 'show' ? (i-Math.floor(rows/2))*(height/rows) : 0),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5015 opacity: o.options.mode == 'show' ? 0 : 1
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5016 }).animate({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5017 left: offset.left + j*(width/cells) + (o.options.mode == 'show' ? 0 : (j-Math.floor(cells/2))*(width/cells)),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5018 top: offset.top + i*(height/rows) + (o.options.mode == 'show' ? 0 : (i-Math.floor(rows/2))*(height/rows)),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5019 opacity: o.options.mode == 'show' ? 1 : 0
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5020 }, o.duration || 500);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5021 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5022 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5023
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5024 // Set a timeout, to call the callback approx. when the other animations have finished
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5025 setTimeout(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5026
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5027 o.options.mode == 'show' ? el.css({ visibility: 'visible' }) : el.css({ visibility: 'visible' }).hide();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5028 if(o.callback) o.callback.apply(el[0]); // Callback
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5029 el.dequeue();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5030
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5031 $('div.ui-effects-explode').remove();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5032
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5033 }, o.duration || 500);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5034
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5035
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5036 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5037
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5038 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5039
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5040 })(jQuery);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5041 /*
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5042 * Note: While Microsoft is not the author of this file, Microsoft is
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5043 * offering you a license subject to the terms of the Microsoft Software
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5044 * License Terms for Microsoft ASP.NET Model View Controller 3.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5045 * Microsoft reserves all other rights. The notices below are provided
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5046 * for informational purposes only and are not the license terms under
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5047 * which Microsoft distributed this file.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5048 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5049 * jQuery UI Effects Fade 1.8.7
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5050 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5051 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5052 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5053 * http://docs.jquery.com/UI/Effects/Fade
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5054 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5055 * Depends:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5056 * jquery.effects.core.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5057 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5058 (function( $, undefined ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5059
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5060 $.effects.fade = function(o) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5061 return this.queue(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5062 var elem = $(this),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5063 mode = $.effects.setMode(elem, o.options.mode || 'hide');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5064
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5065 elem.animate({ opacity: mode }, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5066 queue: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5067 duration: o.duration,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5068 easing: o.options.easing,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5069 complete: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5070 (o.callback && o.callback.apply(this, arguments));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5071 elem.dequeue();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5072 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5073 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5074 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5075 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5076
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5077 })(jQuery);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5078 /*
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5079 * Note: While Microsoft is not the author of this file, Microsoft is
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5080 * offering you a license subject to the terms of the Microsoft Software
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5081 * License Terms for Microsoft ASP.NET Model View Controller 3.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5082 * Microsoft reserves all other rights. The notices below are provided
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5083 * for informational purposes only and are not the license terms under
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5084 * which Microsoft distributed this file.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5085 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5086 * jQuery UI Effects Fold 1.8.7
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5087 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5088 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5089 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5090 * http://docs.jquery.com/UI/Effects/Fold
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5091 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5092 * Depends:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5093 * jquery.effects.core.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5094 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5095 (function( $, undefined ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5096
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5097 $.effects.fold = function(o) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5098
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5099 return this.queue(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5100
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5101 // Create element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5102 var el = $(this), props = ['position','top','left'];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5103
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5104 // Set options
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5105 var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5106 var size = o.options.size || 15; // Default fold size
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5107 var horizFirst = !(!o.options.horizFirst); // Ensure a boolean value
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5108 var duration = o.duration ? o.duration / 2 : $.fx.speeds._default / 2;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5109
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5110 // Adjust
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5111 $.effects.save(el, props); el.show(); // Save & Show
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5112 var wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5113 var widthFirst = ((mode == 'show') != horizFirst);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5114 var ref = widthFirst ? ['width', 'height'] : ['height', 'width'];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5115 var distance = widthFirst ? [wrapper.width(), wrapper.height()] : [wrapper.height(), wrapper.width()];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5116 var percent = /([0-9]+)%/.exec(size);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5117 if(percent) size = parseInt(percent[1],10) / 100 * distance[mode == 'hide' ? 0 : 1];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5118 if(mode == 'show') wrapper.css(horizFirst ? {height: 0, width: size} : {height: size, width: 0}); // Shift
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5119
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5120 // Animation
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5121 var animation1 = {}, animation2 = {};
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5122 animation1[ref[0]] = mode == 'show' ? distance[0] : size;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5123 animation2[ref[1]] = mode == 'show' ? distance[1] : 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5124
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5125 // Animate
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5126 wrapper.animate(animation1, duration, o.options.easing)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5127 .animate(animation2, duration, o.options.easing, function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5128 if(mode == 'hide') el.hide(); // Hide
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5129 $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5130 if(o.callback) o.callback.apply(el[0], arguments); // Callback
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5131 el.dequeue();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5132 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5133
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5134 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5135
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5136 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5137
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5138 })(jQuery);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5139 /*
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5140 * Note: While Microsoft is not the author of this file, Microsoft is
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5141 * offering you a license subject to the terms of the Microsoft Software
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5142 * License Terms for Microsoft ASP.NET Model View Controller 3.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5143 * Microsoft reserves all other rights. The notices below are provided
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5144 * for informational purposes only and are not the license terms under
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5145 * which Microsoft distributed this file.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5146 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5147 * jQuery UI Effects Highlight 1.8.7
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5148 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5149 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5150 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5151 * http://docs.jquery.com/UI/Effects/Highlight
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5152 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5153 * Depends:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5154 * jquery.effects.core.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5155 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5156 (function( $, undefined ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5157
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5158 $.effects.highlight = function(o) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5159 return this.queue(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5160 var elem = $(this),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5161 props = ['backgroundImage', 'backgroundColor', 'opacity'],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5162 mode = $.effects.setMode(elem, o.options.mode || 'show'),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5163 animation = {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5164 backgroundColor: elem.css('backgroundColor')
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5165 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5166
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5167 if (mode == 'hide') {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5168 animation.opacity = 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5169 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5170
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5171 $.effects.save(elem, props);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5172 elem
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5173 .show()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5174 .css({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5175 backgroundImage: 'none',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5176 backgroundColor: o.options.color || '#ffff99'
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5177 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5178 .animate(animation, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5179 queue: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5180 duration: o.duration,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5181 easing: o.options.easing,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5182 complete: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5183 (mode == 'hide' && elem.hide());
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5184 $.effects.restore(elem, props);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5185 (mode == 'show' && !$.support.opacity && this.style.removeAttribute('filter'));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5186 (o.callback && o.callback.apply(this, arguments));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5187 elem.dequeue();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5188 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5189 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5190 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5191 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5192
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5193 })(jQuery);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5194 /*
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5195 * Note: While Microsoft is not the author of this file, Microsoft is
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5196 * offering you a license subject to the terms of the Microsoft Software
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5197 * License Terms for Microsoft ASP.NET Model View Controller 3.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5198 * Microsoft reserves all other rights. The notices below are provided
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5199 * for informational purposes only and are not the license terms under
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5200 * which Microsoft distributed this file.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5201 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5202 * jQuery UI Effects Pulsate 1.8.7
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5203 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5204 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5205 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5206 * http://docs.jquery.com/UI/Effects/Pulsate
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5207 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5208 * Depends:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5209 * jquery.effects.core.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5210 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5211 (function( $, undefined ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5212
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5213 $.effects.pulsate = function(o) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5214 return this.queue(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5215 var elem = $(this),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5216 mode = $.effects.setMode(elem, o.options.mode || 'show');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5217 times = ((o.options.times || 5) * 2) - 1;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5218 duration = o.duration ? o.duration / 2 : $.fx.speeds._default / 2,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5219 isVisible = elem.is(':visible'),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5220 animateTo = 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5221
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5222 if (!isVisible) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5223 elem.css('opacity', 0).show();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5224 animateTo = 1;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5225 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5226
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5227 if ((mode == 'hide' && isVisible) || (mode == 'show' && !isVisible)) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5228 times--;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5229 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5230
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5231 for (var i = 0; i < times; i++) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5232 elem.animate({ opacity: animateTo }, duration, o.options.easing);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5233 animateTo = (animateTo + 1) % 2;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5234 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5235
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5236 elem.animate({ opacity: animateTo }, duration, o.options.easing, function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5237 if (animateTo == 0) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5238 elem.hide();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5239 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5240 (o.callback && o.callback.apply(this, arguments));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5241 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5242
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5243 elem
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5244 .queue('fx', function() { elem.dequeue(); })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5245 .dequeue();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5246 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5247 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5248
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5249 })(jQuery);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5250 /*
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5251 * Note: While Microsoft is not the author of this file, Microsoft is
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5252 * offering you a license subject to the terms of the Microsoft Software
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5253 * License Terms for Microsoft ASP.NET Model View Controller 3.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5254 * Microsoft reserves all other rights. The notices below are provided
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5255 * for informational purposes only and are not the license terms under
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5256 * which Microsoft distributed this file.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5257 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5258 * jQuery UI Effects Scale 1.8.7
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5259 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5260 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5261 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5262 * http://docs.jquery.com/UI/Effects/Scale
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5263 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5264 * Depends:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5265 * jquery.effects.core.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5266 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5267 (function( $, undefined ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5268
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5269 $.effects.puff = function(o) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5270 return this.queue(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5271 var elem = $(this),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5272 mode = $.effects.setMode(elem, o.options.mode || 'hide'),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5273 percent = parseInt(o.options.percent, 10) || 150,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5274 factor = percent / 100,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5275 original = { height: elem.height(), width: elem.width() };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5276
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5277 $.extend(o.options, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5278 fade: true,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5279 mode: mode,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5280 percent: mode == 'hide' ? percent : 100,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5281 from: mode == 'hide'
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5282 ? original
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5283 : {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5284 height: original.height * factor,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5285 width: original.width * factor
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5286 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5287 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5288
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5289 elem.effect('scale', o.options, o.duration, o.callback);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5290 elem.dequeue();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5291 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5292 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5293
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5294 $.effects.scale = function(o) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5295
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5296 return this.queue(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5297
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5298 // Create element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5299 var el = $(this);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5300
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5301 // Set options
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5302 var options = $.extend(true, {}, o.options);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5303 var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5304 var percent = parseInt(o.options.percent,10) || (parseInt(o.options.percent,10) == 0 ? 0 : (mode == 'hide' ? 0 : 100)); // Set default scaling percent
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5305 var direction = o.options.direction || 'both'; // Set default axis
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5306 var origin = o.options.origin; // The origin of the scaling
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5307 if (mode != 'effect') { // Set default origin and restore for show/hide
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5308 options.origin = origin || ['middle','center'];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5309 options.restore = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5310 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5311 var original = {height: el.height(), width: el.width()}; // Save original
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5312 el.from = o.options.from || (mode == 'show' ? {height: 0, width: 0} : original); // Default from state
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5313
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5314 // Adjust
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5315 var factor = { // Set scaling factor
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5316 y: direction != 'horizontal' ? (percent / 100) : 1,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5317 x: direction != 'vertical' ? (percent / 100) : 1
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5318 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5319 el.to = {height: original.height * factor.y, width: original.width * factor.x}; // Set to state
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5320
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5321 if (o.options.fade) { // Fade option to support puff
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5322 if (mode == 'show') {el.from.opacity = 0; el.to.opacity = 1;};
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5323 if (mode == 'hide') {el.from.opacity = 1; el.to.opacity = 0;};
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5324 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5325
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5326 // Animation
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5327 options.from = el.from; options.to = el.to; options.mode = mode;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5328
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5329 // Animate
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5330 el.effect('size', options, o.duration, o.callback);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5331 el.dequeue();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5332 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5333
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5334 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5335
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5336 $.effects.size = function(o) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5337
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5338 return this.queue(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5339
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5340 // Create element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5341 var el = $(this), props = ['position','top','left','width','height','overflow','opacity'];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5342 var props1 = ['position','top','left','overflow','opacity']; // Always restore
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5343 var props2 = ['width','height','overflow']; // Copy for children
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5344 var cProps = ['fontSize'];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5345 var vProps = ['borderTopWidth', 'borderBottomWidth', 'paddingTop', 'paddingBottom'];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5346 var hProps = ['borderLeftWidth', 'borderRightWidth', 'paddingLeft', 'paddingRight'];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5347
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5348 // Set options
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5349 var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5350 var restore = o.options.restore || false; // Default restore
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5351 var scale = o.options.scale || 'both'; // Default scale mode
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5352 var origin = o.options.origin; // The origin of the sizing
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5353 var original = {height: el.height(), width: el.width()}; // Save original
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5354 el.from = o.options.from || original; // Default from state
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5355 el.to = o.options.to || original; // Default to state
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5356 // Adjust
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5357 if (origin) { // Calculate baseline shifts
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5358 var baseline = $.effects.getBaseline(origin, original);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5359 el.from.top = (original.height - el.from.height) * baseline.y;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5360 el.from.left = (original.width - el.from.width) * baseline.x;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5361 el.to.top = (original.height - el.to.height) * baseline.y;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5362 el.to.left = (original.width - el.to.width) * baseline.x;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5363 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5364 var factor = { // Set scaling factor
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5365 from: {y: el.from.height / original.height, x: el.from.width / original.width},
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5366 to: {y: el.to.height / original.height, x: el.to.width / original.width}
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5367 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5368 if (scale == 'box' || scale == 'both') { // Scale the css box
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5369 if (factor.from.y != factor.to.y) { // Vertical props scaling
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5370 props = props.concat(vProps);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5371 el.from = $.effects.setTransition(el, vProps, factor.from.y, el.from);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5372 el.to = $.effects.setTransition(el, vProps, factor.to.y, el.to);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5373 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5374 if (factor.from.x != factor.to.x) { // Horizontal props scaling
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5375 props = props.concat(hProps);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5376 el.from = $.effects.setTransition(el, hProps, factor.from.x, el.from);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5377 el.to = $.effects.setTransition(el, hProps, factor.to.x, el.to);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5378 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5379 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5380 if (scale == 'content' || scale == 'both') { // Scale the content
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5381 if (factor.from.y != factor.to.y) { // Vertical props scaling
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5382 props = props.concat(cProps);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5383 el.from = $.effects.setTransition(el, cProps, factor.from.y, el.from);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5384 el.to = $.effects.setTransition(el, cProps, factor.to.y, el.to);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5385 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5386 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5387 $.effects.save(el, restore ? props : props1); el.show(); // Save & Show
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5388 $.effects.createWrapper(el); // Create Wrapper
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5389 el.css('overflow','hidden').css(el.from); // Shift
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5390
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5391 // Animate
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5392 if (scale == 'content' || scale == 'both') { // Scale the children
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5393 vProps = vProps.concat(['marginTop','marginBottom']).concat(cProps); // Add margins/font-size
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5394 hProps = hProps.concat(['marginLeft','marginRight']); // Add margins
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5395 props2 = props.concat(vProps).concat(hProps); // Concat
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5396 el.find("*[width]").each(function(){
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5397 child = $(this);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5398 if (restore) $.effects.save(child, props2);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5399 var c_original = {height: child.height(), width: child.width()}; // Save original
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5400 child.from = {height: c_original.height * factor.from.y, width: c_original.width * factor.from.x};
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5401 child.to = {height: c_original.height * factor.to.y, width: c_original.width * factor.to.x};
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5402 if (factor.from.y != factor.to.y) { // Vertical props scaling
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5403 child.from = $.effects.setTransition(child, vProps, factor.from.y, child.from);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5404 child.to = $.effects.setTransition(child, vProps, factor.to.y, child.to);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5405 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5406 if (factor.from.x != factor.to.x) { // Horizontal props scaling
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5407 child.from = $.effects.setTransition(child, hProps, factor.from.x, child.from);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5408 child.to = $.effects.setTransition(child, hProps, factor.to.x, child.to);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5409 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5410 child.css(child.from); // Shift children
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5411 child.animate(child.to, o.duration, o.options.easing, function(){
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5412 if (restore) $.effects.restore(child, props2); // Restore children
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5413 }); // Animate children
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5414 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5415 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5416
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5417 // Animate
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5418 el.animate(el.to, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5419 if (el.to.opacity === 0) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5420 el.css('opacity', el.from.opacity);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5421 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5422 if(mode == 'hide') el.hide(); // Hide
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5423 $.effects.restore(el, restore ? props : props1); $.effects.removeWrapper(el); // Restore
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5424 if(o.callback) o.callback.apply(this, arguments); // Callback
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5425 el.dequeue();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5426 }});
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5427
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5428 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5429
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5430 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5431
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5432 })(jQuery);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5433 /*
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5434 * Note: While Microsoft is not the author of this file, Microsoft is
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5435 * offering you a license subject to the terms of the Microsoft Software
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5436 * License Terms for Microsoft ASP.NET Model View Controller 3.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5437 * Microsoft reserves all other rights. The notices below are provided
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5438 * for informational purposes only and are not the license terms under
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5439 * which Microsoft distributed this file.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5440 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5441 * jQuery UI Effects Shake 1.8.7
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5442 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5443 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5444 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5445 * http://docs.jquery.com/UI/Effects/Shake
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5446 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5447 * Depends:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5448 * jquery.effects.core.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5449 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5450 (function( $, undefined ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5451
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5452 $.effects.shake = function(o) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5453
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5454 return this.queue(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5455
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5456 // Create element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5457 var el = $(this), props = ['position','top','left'];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5458
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5459 // Set options
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5460 var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5461 var direction = o.options.direction || 'left'; // Default direction
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5462 var distance = o.options.distance || 20; // Default distance
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5463 var times = o.options.times || 3; // Default # of times
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5464 var speed = o.duration || o.options.duration || 140; // Default speed per shake
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5465
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5466 // Adjust
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5467 $.effects.save(el, props); el.show(); // Save & Show
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5468 $.effects.createWrapper(el); // Create Wrapper
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5469 var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5470 var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5471
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5472 // Animation
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5473 var animation = {}, animation1 = {}, animation2 = {};
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5474 animation[ref] = (motion == 'pos' ? '-=' : '+=') + distance;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5475 animation1[ref] = (motion == 'pos' ? '+=' : '-=') + distance * 2;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5476 animation2[ref] = (motion == 'pos' ? '-=' : '+=') + distance * 2;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5477
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5478 // Animate
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5479 el.animate(animation, speed, o.options.easing);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5480 for (var i = 1; i < times; i++) { // Shakes
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5481 el.animate(animation1, speed, o.options.easing).animate(animation2, speed, o.options.easing);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5482 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5483 el.animate(animation1, speed, o.options.easing).
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5484 animate(animation, speed / 2, o.options.easing, function(){ // Last shake
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5485 $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5486 if(o.callback) o.callback.apply(this, arguments); // Callback
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5487 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5488 el.queue('fx', function() { el.dequeue(); });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5489 el.dequeue();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5490 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5491
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5492 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5493
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5494 })(jQuery);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5495 /*
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5496 * Note: While Microsoft is not the author of this file, Microsoft is
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5497 * offering you a license subject to the terms of the Microsoft Software
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5498 * License Terms for Microsoft ASP.NET Model View Controller 3.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5499 * Microsoft reserves all other rights. The notices below are provided
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5500 * for informational purposes only and are not the license terms under
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5501 * which Microsoft distributed this file.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5502 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5503 * jQuery UI Effects Slide 1.8.7
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5504 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5505 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5506 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5507 * http://docs.jquery.com/UI/Effects/Slide
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5508 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5509 * Depends:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5510 * jquery.effects.core.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5511 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5512 (function( $, undefined ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5513
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5514 $.effects.slide = function(o) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5515
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5516 return this.queue(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5517
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5518 // Create element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5519 var el = $(this), props = ['position','top','left'];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5520
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5521 // Set options
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5522 var mode = $.effects.setMode(el, o.options.mode || 'show'); // Set Mode
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5523 var direction = o.options.direction || 'left'; // Default Direction
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5524
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5525 // Adjust
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5526 $.effects.save(el, props); el.show(); // Save & Show
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5527 $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5528 var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5529 var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5530 var distance = o.options.distance || (ref == 'top' ? el.outerHeight({margin:true}) : el.outerWidth({margin:true}));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5531 if (mode == 'show') el.css(ref, motion == 'pos' ? (isNaN(distance) ? "-" + distance : -distance) : distance); // Shift
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5532
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5533 // Animation
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5534 var animation = {};
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5535 animation[ref] = (mode == 'show' ? (motion == 'pos' ? '+=' : '-=') : (motion == 'pos' ? '-=' : '+=')) + distance;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5536
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5537 // Animate
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5538 el.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5539 if(mode == 'hide') el.hide(); // Hide
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5540 $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5541 if(o.callback) o.callback.apply(this, arguments); // Callback
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5542 el.dequeue();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5543 }});
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5544
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5545 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5546
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5547 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5548
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5549 })(jQuery);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5550 /*
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5551 * Note: While Microsoft is not the author of this file, Microsoft is
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5552 * offering you a license subject to the terms of the Microsoft Software
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5553 * License Terms for Microsoft ASP.NET Model View Controller 3.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5554 * Microsoft reserves all other rights. The notices below are provided
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5555 * for informational purposes only and are not the license terms under
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5556 * which Microsoft distributed this file.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5557 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5558 * jQuery UI Effects Transfer 1.8.7
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5559 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5560 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5561 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5562 * http://docs.jquery.com/UI/Effects/Transfer
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5563 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5564 * Depends:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5565 * jquery.effects.core.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5566 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5567 (function( $, undefined ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5568
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5569 $.effects.transfer = function(o) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5570 return this.queue(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5571 var elem = $(this),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5572 target = $(o.options.to),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5573 endPosition = target.offset(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5574 animation = {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5575 top: endPosition.top,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5576 left: endPosition.left,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5577 height: target.innerHeight(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5578 width: target.innerWidth()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5579 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5580 startPosition = elem.offset(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5581 transfer = $('<div class="ui-effects-transfer"></div>')
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5582 .appendTo(document.body)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5583 .addClass(o.options.className)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5584 .css({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5585 top: startPosition.top,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5586 left: startPosition.left,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5587 height: elem.innerHeight(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5588 width: elem.innerWidth(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5589 position: 'absolute'
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5590 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5591 .animate(animation, o.duration, o.options.easing, function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5592 transfer.remove();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5593 (o.callback && o.callback.apply(elem[0], arguments));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5594 elem.dequeue();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5595 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5596 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5597 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5598
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5599 })(jQuery);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5600 /*
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5601 * Note: While Microsoft is not the author of this file, Microsoft is
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5602 * offering you a license subject to the terms of the Microsoft Software
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5603 * License Terms for Microsoft ASP.NET Model View Controller 3.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5604 * Microsoft reserves all other rights. The notices below are provided
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5605 * for informational purposes only and are not the license terms under
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5606 * which Microsoft distributed this file.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5607 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5608 * jQuery UI Accordion 1.8.7
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5609 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5610 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5611 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5612 * http://docs.jquery.com/UI/Accordion
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5613 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5614 * Depends:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5615 * jquery.ui.core.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5616 * jquery.ui.widget.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5617 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5618 (function( $, undefined ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5619
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5620 $.widget( "ui.accordion", {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5621 options: {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5622 active: 0,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5623 animated: "slide",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5624 autoHeight: true,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5625 clearStyle: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5626 collapsible: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5627 event: "click",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5628 fillSpace: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5629 header: "> li > :first-child,> :not(li):even",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5630 icons: {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5631 header: "ui-icon-triangle-1-e",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5632 headerSelected: "ui-icon-triangle-1-s"
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5633 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5634 navigation: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5635 navigationFilter: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5636 return this.href.toLowerCase() === location.href.toLowerCase();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5637 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5638 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5639
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5640 _create: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5641 var self = this,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5642 options = self.options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5643
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5644 self.running = 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5645
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5646 self.element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5647 .addClass( "ui-accordion ui-widget ui-helper-reset" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5648 // in lack of child-selectors in CSS
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5649 // we need to mark top-LIs in a UL-accordion for some IE-fix
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5650 .children( "li" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5651 .addClass( "ui-accordion-li-fix" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5652
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5653 self.headers = self.element.find( options.header )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5654 .addClass( "ui-accordion-header ui-helper-reset ui-state-default ui-corner-all" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5655 .bind( "mouseenter.accordion", function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5656 if ( options.disabled ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5657 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5658 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5659 $( this ).addClass( "ui-state-hover" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5660 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5661 .bind( "mouseleave.accordion", function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5662 if ( options.disabled ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5663 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5664 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5665 $( this ).removeClass( "ui-state-hover" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5666 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5667 .bind( "focus.accordion", function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5668 if ( options.disabled ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5669 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5670 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5671 $( this ).addClass( "ui-state-focus" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5672 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5673 .bind( "blur.accordion", function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5674 if ( options.disabled ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5675 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5676 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5677 $( this ).removeClass( "ui-state-focus" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5678 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5679
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5680 self.headers.next()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5681 .addClass( "ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5682
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5683 if ( options.navigation ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5684 var current = self.element.find( "a" ).filter( options.navigationFilter ).eq( 0 );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5685 if ( current.length ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5686 var header = current.closest( ".ui-accordion-header" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5687 if ( header.length ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5688 // anchor within header
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5689 self.active = header;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5690 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5691 // anchor within content
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5692 self.active = current.closest( ".ui-accordion-content" ).prev();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5693 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5694 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5695 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5696
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5697 self.active = self._findActive( self.active || options.active )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5698 .addClass( "ui-state-default ui-state-active" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5699 .toggleClass( "ui-corner-all" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5700 .toggleClass( "ui-corner-top" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5701 self.active.next().addClass( "ui-accordion-content-active" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5702
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5703 self._createIcons();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5704 self.resize();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5705
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5706 // ARIA
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5707 self.element.attr( "role", "tablist" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5708
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5709 self.headers
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5710 .attr( "role", "tab" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5711 .bind( "keydown.accordion", function( event ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5712 return self._keydown( event );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5713 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5714 .next()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5715 .attr( "role", "tabpanel" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5716
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5717 self.headers
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5718 .not( self.active || "" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5719 .attr({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5720 "aria-expanded": "false",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5721 tabIndex: -1
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5722 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5723 .next()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5724 .hide();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5725
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5726 // make sure at least one header is in the tab order
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5727 if ( !self.active.length ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5728 self.headers.eq( 0 ).attr( "tabIndex", 0 );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5729 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5730 self.active
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5731 .attr({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5732 "aria-expanded": "true",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5733 tabIndex: 0
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5734 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5735 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5736
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5737 // only need links in tab order for Safari
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5738 if ( !$.browser.safari ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5739 self.headers.find( "a" ).attr( "tabIndex", -1 );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5740 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5741
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5742 if ( options.event ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5743 self.headers.bind( options.event.split(" ").join(".accordion ") + ".accordion", function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5744 self._clickHandler.call( self, event, this );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5745 event.preventDefault();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5746 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5747 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5748 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5749
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5750 _createIcons: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5751 var options = this.options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5752 if ( options.icons ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5753 $( "<span></span>" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5754 .addClass( "ui-icon " + options.icons.header )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5755 .prependTo( this.headers );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5756 this.active.children( ".ui-icon" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5757 .toggleClass(options.icons.header)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5758 .toggleClass(options.icons.headerSelected);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5759 this.element.addClass( "ui-accordion-icons" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5760 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5761 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5762
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5763 _destroyIcons: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5764 this.headers.children( ".ui-icon" ).remove();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5765 this.element.removeClass( "ui-accordion-icons" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5766 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5767
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5768 destroy: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5769 var options = this.options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5770
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5771 this.element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5772 .removeClass( "ui-accordion ui-widget ui-helper-reset" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5773 .removeAttr( "role" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5774
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5775 this.headers
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5776 .unbind( ".accordion" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5777 .removeClass( "ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5778 .removeAttr( "role" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5779 .removeAttr( "aria-expanded" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5780 .removeAttr( "tabIndex" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5781
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5782 this.headers.find( "a" ).removeAttr( "tabIndex" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5783 this._destroyIcons();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5784 var contents = this.headers.next()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5785 .css( "display", "" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5786 .removeAttr( "role" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5787 .removeClass( "ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5788 if ( options.autoHeight || options.fillHeight ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5789 contents.css( "height", "" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5790 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5791
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5792 return $.Widget.prototype.destroy.call( this );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5793 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5794
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5795 _setOption: function( key, value ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5796 $.Widget.prototype._setOption.apply( this, arguments );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5797
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5798 if ( key == "active" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5799 this.activate( value );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5800 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5801 if ( key == "icons" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5802 this._destroyIcons();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5803 if ( value ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5804 this._createIcons();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5805 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5806 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5807 // #5332 - opacity doesn't cascade to positioned elements in IE
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5808 // so we need to add the disabled class to the headers and panels
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5809 if ( key == "disabled" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5810 this.headers.add(this.headers.next())
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5811 [ value ? "addClass" : "removeClass" ](
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5812 "ui-accordion-disabled ui-state-disabled" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5813 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5814 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5815
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5816 _keydown: function( event ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5817 if ( this.options.disabled || event.altKey || event.ctrlKey ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5818 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5819 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5820
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5821 var keyCode = $.ui.keyCode,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5822 length = this.headers.length,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5823 currentIndex = this.headers.index( event.target ),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5824 toFocus = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5825
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5826 switch ( event.keyCode ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5827 case keyCode.RIGHT:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5828 case keyCode.DOWN:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5829 toFocus = this.headers[ ( currentIndex + 1 ) % length ];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5830 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5831 case keyCode.LEFT:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5832 case keyCode.UP:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5833 toFocus = this.headers[ ( currentIndex - 1 + length ) % length ];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5834 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5835 case keyCode.SPACE:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5836 case keyCode.ENTER:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5837 this._clickHandler( { target: event.target }, event.target );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5838 event.preventDefault();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5839 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5840
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5841 if ( toFocus ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5842 $( event.target ).attr( "tabIndex", -1 );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5843 $( toFocus ).attr( "tabIndex", 0 );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5844 toFocus.focus();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5845 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5846 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5847
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5848 return true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5849 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5850
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5851 resize: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5852 var options = this.options,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5853 maxHeight;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5854
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5855 if ( options.fillSpace ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5856 if ( $.browser.msie ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5857 var defOverflow = this.element.parent().css( "overflow" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5858 this.element.parent().css( "overflow", "hidden");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5859 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5860 maxHeight = this.element.parent().height();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5861 if ($.browser.msie) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5862 this.element.parent().css( "overflow", defOverflow );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5863 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5864
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5865 this.headers.each(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5866 maxHeight -= $( this ).outerHeight( true );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5867 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5868
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5869 this.headers.next()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5870 .each(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5871 $( this ).height( Math.max( 0, maxHeight -
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5872 $( this ).innerHeight() + $( this ).height() ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5873 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5874 .css( "overflow", "auto" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5875 } else if ( options.autoHeight ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5876 maxHeight = 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5877 this.headers.next()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5878 .each(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5879 maxHeight = Math.max( maxHeight, $( this ).height( "" ).height() );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5880 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5881 .height( maxHeight );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5882 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5883
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5884 return this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5885 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5886
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5887 activate: function( index ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5888 // TODO this gets called on init, changing the option without an explicit call for that
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5889 this.options.active = index;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5890 // call clickHandler with custom event
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5891 var active = this._findActive( index )[ 0 ];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5892 this._clickHandler( { target: active }, active );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5893
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5894 return this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5895 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5896
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5897 _findActive: function( selector ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5898 return selector
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5899 ? typeof selector === "number"
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5900 ? this.headers.filter( ":eq(" + selector + ")" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5901 : this.headers.not( this.headers.not( selector ) )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5902 : selector === false
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5903 ? $( [] )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5904 : this.headers.filter( ":eq(0)" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5905 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5906
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5907 // TODO isn't event.target enough? why the separate target argument?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5908 _clickHandler: function( event, target ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5909 var options = this.options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5910 if ( options.disabled ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5911 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5912 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5913
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5914 // called only when using activate(false) to close all parts programmatically
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5915 if ( !event.target ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5916 if ( !options.collapsible ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5917 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5918 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5919 this.active
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5920 .removeClass( "ui-state-active ui-corner-top" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5921 .addClass( "ui-state-default ui-corner-all" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5922 .children( ".ui-icon" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5923 .removeClass( options.icons.headerSelected )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5924 .addClass( options.icons.header );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5925 this.active.next().addClass( "ui-accordion-content-active" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5926 var toHide = this.active.next(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5927 data = {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5928 options: options,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5929 newHeader: $( [] ),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5930 oldHeader: options.active,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5931 newContent: $( [] ),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5932 oldContent: toHide
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5933 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5934 toShow = ( this.active = $( [] ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5935 this._toggle( toShow, toHide, data );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5936 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5937 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5938
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5939 // get the click target
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5940 var clicked = $( event.currentTarget || target ),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5941 clickedIsActive = clicked[0] === this.active[0];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5942
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5943 // TODO the option is changed, is that correct?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5944 // TODO if it is correct, shouldn't that happen after determining that the click is valid?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5945 options.active = options.collapsible && clickedIsActive ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5946 false :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5947 this.headers.index( clicked );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5948
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5949 // if animations are still active, or the active header is the target, ignore click
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5950 if ( this.running || ( !options.collapsible && clickedIsActive ) ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5951 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5952 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5953
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5954 // switch classes
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5955 this.active
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5956 .removeClass( "ui-state-active ui-corner-top" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5957 .addClass( "ui-state-default ui-corner-all" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5958 .children( ".ui-icon" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5959 .removeClass( options.icons.headerSelected )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5960 .addClass( options.icons.header );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5961 if ( !clickedIsActive ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5962 clicked
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5963 .removeClass( "ui-state-default ui-corner-all" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5964 .addClass( "ui-state-active ui-corner-top" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5965 .children( ".ui-icon" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5966 .removeClass( options.icons.header )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5967 .addClass( options.icons.headerSelected );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5968 clicked
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5969 .next()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5970 .addClass( "ui-accordion-content-active" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5971 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5972
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5973 // find elements to show and hide
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5974 var toShow = clicked.next(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5975 toHide = this.active.next(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5976 data = {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5977 options: options,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5978 newHeader: clickedIsActive && options.collapsible ? $([]) : clicked,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5979 oldHeader: this.active,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5980 newContent: clickedIsActive && options.collapsible ? $([]) : toShow,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5981 oldContent: toHide
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5982 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5983 down = this.headers.index( this.active[0] ) > this.headers.index( clicked[0] );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5984
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5985 this.active = clickedIsActive ? $([]) : clicked;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5986 this._toggle( toShow, toHide, data, clickedIsActive, down );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5987
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5988 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5989 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5990
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5991 _toggle: function( toShow, toHide, data, clickedIsActive, down ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5992 var self = this,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5993 options = self.options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5994
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5995 self.toShow = toShow;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5996 self.toHide = toHide;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5997 self.data = data;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5998
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
5999 var complete = function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6000 if ( !self ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6001 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6002 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6003 return self._completed.apply( self, arguments );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6004 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6005
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6006 // trigger changestart event
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6007 self._trigger( "changestart", null, self.data );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6008
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6009 // count elements to animate
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6010 self.running = toHide.size() === 0 ? toShow.size() : toHide.size();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6011
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6012 if ( options.animated ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6013 var animOptions = {};
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6014
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6015 if ( options.collapsible && clickedIsActive ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6016 animOptions = {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6017 toShow: $( [] ),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6018 toHide: toHide,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6019 complete: complete,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6020 down: down,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6021 autoHeight: options.autoHeight || options.fillSpace
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6022 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6023 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6024 animOptions = {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6025 toShow: toShow,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6026 toHide: toHide,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6027 complete: complete,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6028 down: down,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6029 autoHeight: options.autoHeight || options.fillSpace
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6030 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6031 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6032
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6033 if ( !options.proxied ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6034 options.proxied = options.animated;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6035 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6036
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6037 if ( !options.proxiedDuration ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6038 options.proxiedDuration = options.duration;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6039 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6040
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6041 options.animated = $.isFunction( options.proxied ) ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6042 options.proxied( animOptions ) :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6043 options.proxied;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6044
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6045 options.duration = $.isFunction( options.proxiedDuration ) ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6046 options.proxiedDuration( animOptions ) :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6047 options.proxiedDuration;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6048
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6049 var animations = $.ui.accordion.animations,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6050 duration = options.duration,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6051 easing = options.animated;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6052
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6053 if ( easing && !animations[ easing ] && !$.easing[ easing ] ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6054 easing = "slide";
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6055 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6056 if ( !animations[ easing ] ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6057 animations[ easing ] = function( options ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6058 this.slide( options, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6059 easing: easing,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6060 duration: duration || 700
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6061 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6062 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6063 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6064
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6065 animations[ easing ]( animOptions );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6066 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6067 if ( options.collapsible && clickedIsActive ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6068 toShow.toggle();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6069 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6070 toHide.hide();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6071 toShow.show();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6072 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6073
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6074 complete( true );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6075 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6076
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6077 // TODO assert that the blur and focus triggers are really necessary, remove otherwise
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6078 toHide.prev()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6079 .attr({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6080 "aria-expanded": "false",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6081 tabIndex: -1
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6082 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6083 .blur();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6084 toShow.prev()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6085 .attr({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6086 "aria-expanded": "true",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6087 tabIndex: 0
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6088 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6089 .focus();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6090 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6091
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6092 _completed: function( cancel ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6093 this.running = cancel ? 0 : --this.running;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6094 if ( this.running ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6095 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6096 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6097
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6098 if ( this.options.clearStyle ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6099 this.toShow.add( this.toHide ).css({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6100 height: "",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6101 overflow: ""
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6102 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6103 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6104
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6105 // other classes are removed before the animation; this one needs to stay until completed
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6106 this.toHide.removeClass( "ui-accordion-content-active" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6107
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6108 this._trigger( "change", null, this.data );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6109 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6110 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6111
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6112 $.extend( $.ui.accordion, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6113 version: "1.8.7",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6114 animations: {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6115 slide: function( options, additions ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6116 options = $.extend({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6117 easing: "swing",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6118 duration: 300
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6119 }, options, additions );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6120 if ( !options.toHide.size() ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6121 options.toShow.animate({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6122 height: "show",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6123 paddingTop: "show",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6124 paddingBottom: "show"
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6125 }, options );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6126 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6127 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6128 if ( !options.toShow.size() ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6129 options.toHide.animate({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6130 height: "hide",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6131 paddingTop: "hide",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6132 paddingBottom: "hide"
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6133 }, options );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6134 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6135 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6136 var overflow = options.toShow.css( "overflow" ),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6137 percentDone = 0,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6138 showProps = {},
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6139 hideProps = {},
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6140 fxAttrs = [ "height", "paddingTop", "paddingBottom" ],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6141 originalWidth;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6142 // fix width before calculating height of hidden element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6143 var s = options.toShow;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6144 originalWidth = s[0].style.width;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6145 s.width( parseInt( s.parent().width(), 10 )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6146 - parseInt( s.css( "paddingLeft" ), 10 )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6147 - parseInt( s.css( "paddingRight" ), 10 )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6148 - ( parseInt( s.css( "borderLeftWidth" ), 10 ) || 0 )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6149 - ( parseInt( s.css( "borderRightWidth" ), 10) || 0 ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6150
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6151 $.each( fxAttrs, function( i, prop ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6152 hideProps[ prop ] = "hide";
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6153
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6154 var parts = ( "" + $.css( options.toShow[0], prop ) ).match( /^([\d+-.]+)(.*)$/ );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6155 showProps[ prop ] = {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6156 value: parts[ 1 ],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6157 unit: parts[ 2 ] || "px"
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6158 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6159 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6160 options.toShow.css({ height: 0, overflow: "hidden" }).show();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6161 options.toHide
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6162 .filter( ":hidden" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6163 .each( options.complete )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6164 .end()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6165 .filter( ":visible" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6166 .animate( hideProps, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6167 step: function( now, settings ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6168 // only calculate the percent when animating height
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6169 // IE gets very inconsistent results when animating elements
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6170 // with small values, which is common for padding
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6171 if ( settings.prop == "height" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6172 percentDone = ( settings.end - settings.start === 0 ) ? 0 :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6173 ( settings.now - settings.start ) / ( settings.end - settings.start );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6174 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6175
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6176 options.toShow[ 0 ].style[ settings.prop ] =
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6177 ( percentDone * showProps[ settings.prop ].value )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6178 + showProps[ settings.prop ].unit;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6179 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6180 duration: options.duration,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6181 easing: options.easing,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6182 complete: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6183 if ( !options.autoHeight ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6184 options.toShow.css( "height", "" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6185 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6186 options.toShow.css({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6187 width: originalWidth,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6188 overflow: overflow
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6189 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6190 options.complete();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6191 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6192 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6193 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6194 bounceslide: function( options ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6195 this.slide( options, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6196 easing: options.down ? "easeOutBounce" : "swing",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6197 duration: options.down ? 1000 : 200
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6198 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6199 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6200 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6201 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6202
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6203 })( jQuery );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6204 /*
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6205 * Note: While Microsoft is not the author of this file, Microsoft is
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6206 * offering you a license subject to the terms of the Microsoft Software
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6207 * License Terms for Microsoft ASP.NET Model View Controller 3.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6208 * Microsoft reserves all other rights. The notices below are provided
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6209 * for informational purposes only and are not the license terms under
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6210 * which Microsoft distributed this file.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6211 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6212 * jQuery UI Autocomplete 1.8.7
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6213 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6214 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6215 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6216 * http://docs.jquery.com/UI/Autocomplete
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6217 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6218 * Depends:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6219 * jquery.ui.core.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6220 * jquery.ui.widget.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6221 * jquery.ui.position.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6222 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6223 (function( $, undefined ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6224
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6225 $.widget( "ui.autocomplete", {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6226 options: {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6227 appendTo: "body",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6228 delay: 300,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6229 minLength: 1,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6230 position: {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6231 my: "left top",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6232 at: "left bottom",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6233 collision: "none"
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6234 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6235 source: null
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6236 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6237 _create: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6238 var self = this,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6239 doc = this.element[ 0 ].ownerDocument,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6240 suppressKeyPress;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6241
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6242 this.element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6243 .addClass( "ui-autocomplete-input" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6244 .attr( "autocomplete", "off" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6245 // TODO verify these actually work as intended
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6246 .attr({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6247 role: "textbox",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6248 "aria-autocomplete": "list",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6249 "aria-haspopup": "true"
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6250 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6251 .bind( "keydown.autocomplete", function( event ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6252 if ( self.options.disabled || self.element.attr( "readonly" ) ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6253 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6254 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6255
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6256 suppressKeyPress = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6257 var keyCode = $.ui.keyCode;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6258 switch( event.keyCode ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6259 case keyCode.PAGE_UP:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6260 self._move( "previousPage", event );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6261 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6262 case keyCode.PAGE_DOWN:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6263 self._move( "nextPage", event );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6264 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6265 case keyCode.UP:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6266 self._move( "previous", event );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6267 // prevent moving cursor to beginning of text field in some browsers
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6268 event.preventDefault();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6269 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6270 case keyCode.DOWN:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6271 self._move( "next", event );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6272 // prevent moving cursor to end of text field in some browsers
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6273 event.preventDefault();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6274 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6275 case keyCode.ENTER:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6276 case keyCode.NUMPAD_ENTER:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6277 // when menu is open and has focus
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6278 if ( self.menu.active ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6279 // #6055 - Opera still allows the keypress to occur
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6280 // which causes forms to submit
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6281 suppressKeyPress = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6282 event.preventDefault();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6283 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6284 //passthrough - ENTER and TAB both select the current element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6285 case keyCode.TAB:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6286 if ( !self.menu.active ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6287 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6288 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6289 self.menu.select( event );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6290 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6291 case keyCode.ESCAPE:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6292 self.element.val( self.term );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6293 self.close( event );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6294 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6295 default:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6296 // keypress is triggered before the input value is changed
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6297 clearTimeout( self.searching );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6298 self.searching = setTimeout(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6299 // only search if the value has changed
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6300 if ( self.term != self.element.val() ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6301 self.selectedItem = null;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6302 self.search( null, event );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6303 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6304 }, self.options.delay );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6305 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6306 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6307 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6308 .bind( "keypress.autocomplete", function( event ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6309 if ( suppressKeyPress ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6310 suppressKeyPress = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6311 event.preventDefault();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6312 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6313 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6314 .bind( "focus.autocomplete", function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6315 if ( self.options.disabled ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6316 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6317 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6318
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6319 self.selectedItem = null;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6320 self.previous = self.element.val();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6321 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6322 .bind( "blur.autocomplete", function( event ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6323 if ( self.options.disabled ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6324 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6325 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6326
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6327 clearTimeout( self.searching );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6328 // clicks on the menu (or a button to trigger a search) will cause a blur event
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6329 self.closing = setTimeout(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6330 self.close( event );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6331 self._change( event );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6332 }, 150 );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6333 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6334 this._initSource();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6335 this.response = function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6336 return self._response.apply( self, arguments );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6337 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6338 this.menu = $( "<ul></ul>" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6339 .addClass( "ui-autocomplete" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6340 .appendTo( $( this.options.appendTo || "body", doc )[0] )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6341 // prevent the close-on-blur in case of a "slow" click on the menu (long mousedown)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6342 .mousedown(function( event ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6343 // clicking on the scrollbar causes focus to shift to the body
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6344 // but we can't detect a mouseup or a click immediately afterward
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6345 // so we have to track the next mousedown and close the menu if
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6346 // the user clicks somewhere outside of the autocomplete
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6347 var menuElement = self.menu.element[ 0 ];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6348 if ( !$( event.target ).closest( ".ui-menu-item" ).length ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6349 setTimeout(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6350 $( document ).one( 'mousedown', function( event ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6351 if ( event.target !== self.element[ 0 ] &&
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6352 event.target !== menuElement &&
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6353 !$.ui.contains( menuElement, event.target ) ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6354 self.close();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6355 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6356 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6357 }, 1 );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6358 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6359
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6360 // use another timeout to make sure the blur-event-handler on the input was already triggered
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6361 setTimeout(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6362 clearTimeout( self.closing );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6363 }, 13);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6364 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6365 .menu({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6366 focus: function( event, ui ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6367 var item = ui.item.data( "item.autocomplete" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6368 if ( false !== self._trigger( "focus", event, { item: item } ) ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6369 // use value to match what will end up in the input, if it was a key event
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6370 if ( /^key/.test(event.originalEvent.type) ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6371 self.element.val( item.value );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6372 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6373 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6374 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6375 selected: function( event, ui ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6376 var item = ui.item.data( "item.autocomplete" ),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6377 previous = self.previous;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6378
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6379 // only trigger when focus was lost (click on menu)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6380 if ( self.element[0] !== doc.activeElement ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6381 self.element.focus();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6382 self.previous = previous;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6383 // #6109 - IE triggers two focus events and the second
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6384 // is asynchronous, so we need to reset the previous
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6385 // term synchronously and asynchronously :-(
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6386 setTimeout(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6387 self.previous = previous;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6388 self.selectedItem = item;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6389 }, 1);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6390 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6391
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6392 if ( false !== self._trigger( "select", event, { item: item } ) ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6393 self.element.val( item.value );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6394 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6395 // reset the term after the select event
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6396 // this allows custom select handling to work properly
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6397 self.term = self.element.val();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6398
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6399 self.close( event );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6400 self.selectedItem = item;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6401 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6402 blur: function( event, ui ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6403 // don't set the value of the text field if it's already correct
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6404 // this prevents moving the cursor unnecessarily
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6405 if ( self.menu.element.is(":visible") &&
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6406 ( self.element.val() !== self.term ) ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6407 self.element.val( self.term );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6408 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6409 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6410 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6411 .zIndex( this.element.zIndex() + 1 )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6412 // workaround for jQuery bug #5781 http://dev.jquery.com/ticket/5781
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6413 .css({ top: 0, left: 0 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6414 .hide()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6415 .data( "menu" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6416 if ( $.fn.bgiframe ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6417 this.menu.element.bgiframe();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6418 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6419 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6420
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6421 destroy: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6422 this.element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6423 .removeClass( "ui-autocomplete-input" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6424 .removeAttr( "autocomplete" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6425 .removeAttr( "role" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6426 .removeAttr( "aria-autocomplete" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6427 .removeAttr( "aria-haspopup" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6428 this.menu.element.remove();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6429 $.Widget.prototype.destroy.call( this );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6430 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6431
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6432 _setOption: function( key, value ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6433 $.Widget.prototype._setOption.apply( this, arguments );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6434 if ( key === "source" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6435 this._initSource();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6436 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6437 if ( key === "appendTo" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6438 this.menu.element.appendTo( $( value || "body", this.element[0].ownerDocument )[0] )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6439 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6440 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6441
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6442 _initSource: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6443 var self = this,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6444 array,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6445 url;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6446 if ( $.isArray(this.options.source) ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6447 array = this.options.source;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6448 this.source = function( request, response ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6449 response( $.ui.autocomplete.filter(array, request.term) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6450 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6451 } else if ( typeof this.options.source === "string" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6452 url = this.options.source;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6453 this.source = function( request, response ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6454 if (self.xhr) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6455 self.xhr.abort();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6456 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6457 self.xhr = $.ajax({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6458 url: url,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6459 data: request,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6460 dataType: "json",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6461 success: function( data, status, xhr ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6462 if ( xhr === self.xhr ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6463 response( data );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6464 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6465 self.xhr = null;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6466 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6467 error: function( xhr ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6468 if ( xhr === self.xhr ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6469 response( [] );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6470 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6471 self.xhr = null;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6472 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6473 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6474 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6475 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6476 this.source = this.options.source;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6477 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6478 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6479
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6480 search: function( value, event ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6481 value = value != null ? value : this.element.val();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6482
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6483 // always save the actual value, not the one passed as an argument
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6484 this.term = this.element.val();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6485
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6486 if ( value.length < this.options.minLength ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6487 return this.close( event );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6488 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6489
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6490 clearTimeout( this.closing );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6491 if ( this._trigger( "search", event ) === false ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6492 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6493 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6494
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6495 return this._search( value );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6496 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6497
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6498 _search: function( value ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6499 this.element.addClass( "ui-autocomplete-loading" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6500
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6501 this.source( { term: value }, this.response );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6502 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6503
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6504 _response: function( content ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6505 if ( content && content.length ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6506 content = this._normalize( content );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6507 this._suggest( content );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6508 this._trigger( "open" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6509 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6510 this.close();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6511 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6512 this.element.removeClass( "ui-autocomplete-loading" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6513 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6514
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6515 close: function( event ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6516 clearTimeout( this.closing );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6517 if ( this.menu.element.is(":visible") ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6518 this.menu.element.hide();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6519 this.menu.deactivate();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6520 this._trigger( "close", event );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6521 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6522 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6523
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6524 _change: function( event ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6525 if ( this.previous !== this.element.val() ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6526 this._trigger( "change", event, { item: this.selectedItem } );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6527 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6528 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6529
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6530 _normalize: function( items ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6531 // assume all items have the right format when the first item is complete
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6532 if ( items.length && items[0].label && items[0].value ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6533 return items;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6534 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6535 return $.map( items, function(item) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6536 if ( typeof item === "string" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6537 return {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6538 label: item,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6539 value: item
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6540 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6541 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6542 return $.extend({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6543 label: item.label || item.value,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6544 value: item.value || item.label
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6545 }, item );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6546 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6547 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6548
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6549 _suggest: function( items ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6550 var ul = this.menu.element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6551 .empty()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6552 .zIndex( this.element.zIndex() + 1 );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6553 this._renderMenu( ul, items );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6554 // TODO refresh should check if the active item is still in the dom, removing the need for a manual deactivate
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6555 this.menu.deactivate();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6556 this.menu.refresh();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6557
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6558 // size and position menu
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6559 ul.show();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6560 this._resizeMenu();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6561 ul.position( $.extend({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6562 of: this.element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6563 }, this.options.position ));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6564 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6565
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6566 _resizeMenu: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6567 var ul = this.menu.element;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6568 ul.outerWidth( Math.max(
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6569 ul.width( "" ).outerWidth(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6570 this.element.outerWidth()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6571 ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6572 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6573
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6574 _renderMenu: function( ul, items ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6575 var self = this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6576 $.each( items, function( index, item ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6577 self._renderItem( ul, item );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6578 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6579 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6580
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6581 _renderItem: function( ul, item) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6582 return $( "<li></li>" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6583 .data( "item.autocomplete", item )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6584 .append( $( "<a></a>" ).text( item.label ) )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6585 .appendTo( ul );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6586 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6587
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6588 _move: function( direction, event ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6589 if ( !this.menu.element.is(":visible") ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6590 this.search( null, event );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6591 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6592 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6593 if ( this.menu.first() && /^previous/.test(direction) ||
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6594 this.menu.last() && /^next/.test(direction) ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6595 this.element.val( this.term );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6596 this.menu.deactivate();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6597 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6598 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6599 this.menu[ direction ]( event );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6600 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6601
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6602 widget: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6603 return this.menu.element;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6604 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6605 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6606
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6607 $.extend( $.ui.autocomplete, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6608 escapeRegex: function( value ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6609 return value.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6610 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6611 filter: function(array, term) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6612 var matcher = new RegExp( $.ui.autocomplete.escapeRegex(term), "i" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6613 return $.grep( array, function(value) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6614 return matcher.test( value.label || value.value || value );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6615 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6616 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6617 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6618
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6619 }( jQuery ));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6620
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6621 /*
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6622 * Note: While Microsoft is not the author of this file, Microsoft is
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6623 * offering you a license subject to the terms of the Microsoft Software
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6624 * License Terms for Microsoft ASP.NET Model View Controller 3.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6625 * Microsoft reserves all other rights. The notices below are provided
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6626 * for informational purposes only and are not the license terms under
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6627 * which Microsoft distributed this file.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6628 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6629 * jQuery UI Menu (not officially released)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6630 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6631 * This widget isn't yet finished and the API is subject to change. We plan to finish
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6632 * it for the next release. You're welcome to give it a try anyway and give us feedback,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6633 * as long as you're okay with migrating your code later on. We can help with that, too.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6634 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6635 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6636 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6637 * http://docs.jquery.com/UI/Menu
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6638 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6639 * Depends:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6640 * jquery.ui.core.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6641 * jquery.ui.widget.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6642 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6643 (function($) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6644
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6645 $.widget("ui.menu", {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6646 _create: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6647 var self = this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6648 this.element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6649 .addClass("ui-menu ui-widget ui-widget-content ui-corner-all")
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6650 .attr({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6651 role: "listbox",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6652 "aria-activedescendant": "ui-active-menuitem"
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6653 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6654 .click(function( event ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6655 if ( !$( event.target ).closest( ".ui-menu-item a" ).length ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6656 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6657 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6658 // temporary
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6659 event.preventDefault();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6660 self.select( event );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6661 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6662 this.refresh();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6663 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6664
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6665 refresh: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6666 var self = this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6667
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6668 // don't refresh list items that are already adapted
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6669 var items = this.element.children("li:not(.ui-menu-item):has(a)")
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6670 .addClass("ui-menu-item")
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6671 .attr("role", "menuitem");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6672
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6673 items.children("a")
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6674 .addClass("ui-corner-all")
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6675 .attr("tabindex", -1)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6676 // mouseenter doesn't work with event delegation
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6677 .mouseenter(function( event ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6678 self.activate( event, $(this).parent() );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6679 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6680 .mouseleave(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6681 self.deactivate();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6682 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6683 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6684
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6685 activate: function( event, item ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6686 this.deactivate();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6687 if (this.hasScroll()) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6688 var offset = item.offset().top - this.element.offset().top,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6689 scroll = this.element.attr("scrollTop"),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6690 elementHeight = this.element.height();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6691 if (offset < 0) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6692 this.element.attr("scrollTop", scroll + offset);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6693 } else if (offset >= elementHeight) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6694 this.element.attr("scrollTop", scroll + offset - elementHeight + item.height());
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6695 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6696 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6697 this.active = item.eq(0)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6698 .children("a")
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6699 .addClass("ui-state-hover")
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6700 .attr("id", "ui-active-menuitem")
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6701 .end();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6702 this._trigger("focus", event, { item: item });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6703 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6704
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6705 deactivate: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6706 if (!this.active) { return; }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6707
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6708 this.active.children("a")
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6709 .removeClass("ui-state-hover")
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6710 .removeAttr("id");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6711 this._trigger("blur");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6712 this.active = null;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6713 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6714
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6715 next: function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6716 this.move("next", ".ui-menu-item:first", event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6717 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6718
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6719 previous: function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6720 this.move("prev", ".ui-menu-item:last", event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6721 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6722
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6723 first: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6724 return this.active && !this.active.prevAll(".ui-menu-item").length;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6725 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6726
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6727 last: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6728 return this.active && !this.active.nextAll(".ui-menu-item").length;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6729 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6730
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6731 move: function(direction, edge, event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6732 if (!this.active) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6733 this.activate(event, this.element.children(edge));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6734 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6735 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6736 var next = this.active[direction + "All"](".ui-menu-item").eq(0);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6737 if (next.length) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6738 this.activate(event, next);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6739 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6740 this.activate(event, this.element.children(edge));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6741 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6742 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6743
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6744 // TODO merge with previousPage
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6745 nextPage: function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6746 if (this.hasScroll()) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6747 // TODO merge with no-scroll-else
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6748 if (!this.active || this.last()) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6749 this.activate(event, this.element.children(".ui-menu-item:first"));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6750 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6751 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6752 var base = this.active.offset().top,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6753 height = this.element.height(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6754 result = this.element.children(".ui-menu-item").filter(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6755 var close = $(this).offset().top - base - height + $(this).height();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6756 // TODO improve approximation
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6757 return close < 10 && close > -10;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6758 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6759
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6760 // TODO try to catch this earlier when scrollTop indicates the last page anyway
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6761 if (!result.length) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6762 result = this.element.children(".ui-menu-item:last");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6763 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6764 this.activate(event, result);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6765 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6766 this.activate(event, this.element.children(".ui-menu-item")
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6767 .filter(!this.active || this.last() ? ":first" : ":last"));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6768 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6769 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6770
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6771 // TODO merge with nextPage
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6772 previousPage: function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6773 if (this.hasScroll()) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6774 // TODO merge with no-scroll-else
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6775 if (!this.active || this.first()) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6776 this.activate(event, this.element.children(".ui-menu-item:last"));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6777 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6778 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6779
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6780 var base = this.active.offset().top,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6781 height = this.element.height();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6782 result = this.element.children(".ui-menu-item").filter(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6783 var close = $(this).offset().top - base + height - $(this).height();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6784 // TODO improve approximation
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6785 return close < 10 && close > -10;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6786 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6787
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6788 // TODO try to catch this earlier when scrollTop indicates the last page anyway
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6789 if (!result.length) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6790 result = this.element.children(".ui-menu-item:first");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6791 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6792 this.activate(event, result);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6793 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6794 this.activate(event, this.element.children(".ui-menu-item")
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6795 .filter(!this.active || this.first() ? ":last" : ":first"));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6796 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6797 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6798
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6799 hasScroll: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6800 return this.element.height() < this.element.attr("scrollHeight");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6801 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6802
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6803 select: function( event ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6804 this._trigger("selected", event, { item: this.active });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6805 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6806 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6807
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6808 }(jQuery));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6809 /*
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6810 * Note: While Microsoft is not the author of this file, Microsoft is
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6811 * offering you a license subject to the terms of the Microsoft Software
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6812 * License Terms for Microsoft ASP.NET Model View Controller 3.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6813 * Microsoft reserves all other rights. The notices below are provided
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6814 * for informational purposes only and are not the license terms under
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6815 * which Microsoft distributed this file.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6816 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6817 * jQuery UI Button 1.8.7
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6818 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6819 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6820 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6821 * http://docs.jquery.com/UI/Button
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6822 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6823 * Depends:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6824 * jquery.ui.core.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6825 * jquery.ui.widget.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6826 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6827 (function( $, undefined ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6828
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6829 var lastActive,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6830 baseClasses = "ui-button ui-widget ui-state-default ui-corner-all",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6831 stateClasses = "ui-state-hover ui-state-active ",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6832 typeClasses = "ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6833 formResetHandler = function( event ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6834 $( ":ui-button", event.target.form ).each(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6835 var inst = $( this ).data( "button" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6836 setTimeout(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6837 inst.refresh();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6838 }, 1 );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6839 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6840 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6841 radioGroup = function( radio ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6842 var name = radio.name,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6843 form = radio.form,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6844 radios = $( [] );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6845 if ( name ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6846 if ( form ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6847 radios = $( form ).find( "[name='" + name + "']" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6848 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6849 radios = $( "[name='" + name + "']", radio.ownerDocument )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6850 .filter(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6851 return !this.form;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6852 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6853 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6854 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6855 return radios;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6856 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6857
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6858 $.widget( "ui.button", {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6859 options: {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6860 disabled: null,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6861 text: true,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6862 label: null,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6863 icons: {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6864 primary: null,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6865 secondary: null
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6866 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6867 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6868 _create: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6869 this.element.closest( "form" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6870 .unbind( "reset.button" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6871 .bind( "reset.button", formResetHandler );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6872
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6873 if ( typeof this.options.disabled !== "boolean" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6874 this.options.disabled = this.element.attr( "disabled" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6875 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6876
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6877 this._determineButtonType();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6878 this.hasTitle = !!this.buttonElement.attr( "title" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6879
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6880 var self = this,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6881 options = this.options,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6882 toggleButton = this.type === "checkbox" || this.type === "radio",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6883 hoverClass = "ui-state-hover" + ( !toggleButton ? " ui-state-active" : "" ),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6884 focusClass = "ui-state-focus";
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6885
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6886 if ( options.label === null ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6887 options.label = this.buttonElement.html();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6888 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6889
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6890 if ( this.element.is( ":disabled" ) ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6891 options.disabled = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6892 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6893
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6894 this.buttonElement
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6895 .addClass( baseClasses )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6896 .attr( "role", "button" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6897 .bind( "mouseenter.button", function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6898 if ( options.disabled ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6899 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6900 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6901 $( this ).addClass( "ui-state-hover" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6902 if ( this === lastActive ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6903 $( this ).addClass( "ui-state-active" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6904 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6905 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6906 .bind( "mouseleave.button", function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6907 if ( options.disabled ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6908 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6909 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6910 $( this ).removeClass( hoverClass );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6911 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6912 .bind( "focus.button", function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6913 // no need to check disabled, focus won't be triggered anyway
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6914 $( this ).addClass( focusClass );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6915 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6916 .bind( "blur.button", function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6917 $( this ).removeClass( focusClass );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6918 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6919
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6920 if ( toggleButton ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6921 this.element.bind( "change.button", function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6922 self.refresh();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6923 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6924 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6925
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6926 if ( this.type === "checkbox" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6927 this.buttonElement.bind( "click.button", function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6928 if ( options.disabled ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6929 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6930 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6931 $( this ).toggleClass( "ui-state-active" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6932 self.buttonElement.attr( "aria-pressed", self.element[0].checked );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6933 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6934 } else if ( this.type === "radio" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6935 this.buttonElement.bind( "click.button", function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6936 if ( options.disabled ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6937 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6938 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6939 $( this ).addClass( "ui-state-active" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6940 self.buttonElement.attr( "aria-pressed", true );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6941
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6942 var radio = self.element[ 0 ];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6943 radioGroup( radio )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6944 .not( radio )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6945 .map(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6946 return $( this ).button( "widget" )[ 0 ];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6947 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6948 .removeClass( "ui-state-active" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6949 .attr( "aria-pressed", false );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6950 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6951 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6952 this.buttonElement
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6953 .bind( "mousedown.button", function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6954 if ( options.disabled ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6955 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6956 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6957 $( this ).addClass( "ui-state-active" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6958 lastActive = this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6959 $( document ).one( "mouseup", function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6960 lastActive = null;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6961 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6962 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6963 .bind( "mouseup.button", function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6964 if ( options.disabled ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6965 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6966 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6967 $( this ).removeClass( "ui-state-active" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6968 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6969 .bind( "keydown.button", function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6970 if ( options.disabled ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6971 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6972 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6973 if ( event.keyCode == $.ui.keyCode.SPACE || event.keyCode == $.ui.keyCode.ENTER ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6974 $( this ).addClass( "ui-state-active" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6975 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6976 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6977 .bind( "keyup.button", function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6978 $( this ).removeClass( "ui-state-active" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6979 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6980
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6981 if ( this.buttonElement.is("a") ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6982 this.buttonElement.keyup(function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6983 if ( event.keyCode === $.ui.keyCode.SPACE ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6984 // TODO pass through original event correctly (just as 2nd argument doesn't work)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6985 $( this ).click();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6986 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6987 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6988 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6989 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6990
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6991 // TODO: pull out $.Widget's handling for the disabled option into
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6992 // $.Widget.prototype._setOptionDisabled so it's easy to proxy and can
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6993 // be overridden by individual plugins
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6994 this._setOption( "disabled", options.disabled );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6995 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6996
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6997 _determineButtonType: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6998
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
6999 if ( this.element.is(":checkbox") ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7000 this.type = "checkbox";
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7001 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7002 if ( this.element.is(":radio") ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7003 this.type = "radio";
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7004 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7005 if ( this.element.is("input") ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7006 this.type = "input";
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7007 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7008 this.type = "button";
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7009 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7010 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7011 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7012
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7013 if ( this.type === "checkbox" || this.type === "radio" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7014 // we don't search against the document in case the element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7015 // is disconnected from the DOM
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7016 this.buttonElement = this.element.parents().last()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7017 .find( "label[for=" + this.element.attr("id") + "]" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7018 this.element.addClass( "ui-helper-hidden-accessible" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7019
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7020 var checked = this.element.is( ":checked" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7021 if ( checked ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7022 this.buttonElement.addClass( "ui-state-active" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7023 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7024 this.buttonElement.attr( "aria-pressed", checked );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7025 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7026 this.buttonElement = this.element;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7027 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7028 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7029
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7030 widget: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7031 return this.buttonElement;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7032 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7033
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7034 destroy: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7035 this.element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7036 .removeClass( "ui-helper-hidden-accessible" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7037 this.buttonElement
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7038 .removeClass( baseClasses + " " + stateClasses + " " + typeClasses )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7039 .removeAttr( "role" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7040 .removeAttr( "aria-pressed" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7041 .html( this.buttonElement.find(".ui-button-text").html() );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7042
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7043 if ( !this.hasTitle ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7044 this.buttonElement.removeAttr( "title" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7045 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7046
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7047 $.Widget.prototype.destroy.call( this );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7048 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7049
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7050 _setOption: function( key, value ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7051 $.Widget.prototype._setOption.apply( this, arguments );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7052 if ( key === "disabled" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7053 if ( value ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7054 this.element.attr( "disabled", true );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7055 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7056 this.element.removeAttr( "disabled" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7057 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7058 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7059 this._resetButton();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7060 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7061
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7062 refresh: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7063 var isDisabled = this.element.is( ":disabled" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7064 if ( isDisabled !== this.options.disabled ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7065 this._setOption( "disabled", isDisabled );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7066 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7067 if ( this.type === "radio" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7068 radioGroup( this.element[0] ).each(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7069 if ( $( this ).is( ":checked" ) ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7070 $( this ).button( "widget" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7071 .addClass( "ui-state-active" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7072 .attr( "aria-pressed", true );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7073 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7074 $( this ).button( "widget" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7075 .removeClass( "ui-state-active" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7076 .attr( "aria-pressed", false );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7077 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7078 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7079 } else if ( this.type === "checkbox" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7080 if ( this.element.is( ":checked" ) ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7081 this.buttonElement
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7082 .addClass( "ui-state-active" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7083 .attr( "aria-pressed", true );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7084 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7085 this.buttonElement
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7086 .removeClass( "ui-state-active" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7087 .attr( "aria-pressed", false );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7088 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7089 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7090 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7091
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7092 _resetButton: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7093 if ( this.type === "input" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7094 if ( this.options.label ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7095 this.element.val( this.options.label );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7096 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7097 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7098 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7099 var buttonElement = this.buttonElement.removeClass( typeClasses ),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7100 buttonText = $( "<span></span>" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7101 .addClass( "ui-button-text" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7102 .html( this.options.label )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7103 .appendTo( buttonElement.empty() )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7104 .text(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7105 icons = this.options.icons,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7106 multipleIcons = icons.primary && icons.secondary;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7107 if ( icons.primary || icons.secondary ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7108 buttonElement.addClass( "ui-button-text-icon" +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7109 ( multipleIcons ? "s" : ( icons.primary ? "-primary" : "-secondary" ) ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7110 if ( icons.primary ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7111 buttonElement.prepend( "<span class='ui-button-icon-primary ui-icon " + icons.primary + "'></span>" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7112 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7113 if ( icons.secondary ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7114 buttonElement.append( "<span class='ui-button-icon-secondary ui-icon " + icons.secondary + "'></span>" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7115 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7116 if ( !this.options.text ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7117 buttonElement
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7118 .addClass( multipleIcons ? "ui-button-icons-only" : "ui-button-icon-only" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7119 .removeClass( "ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7120 if ( !this.hasTitle ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7121 buttonElement.attr( "title", buttonText );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7122 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7123 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7124 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7125 buttonElement.addClass( "ui-button-text-only" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7126 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7127 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7128 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7129
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7130 $.widget( "ui.buttonset", {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7131 options: {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7132 items: ":button, :submit, :reset, :checkbox, :radio, a, :data(button)"
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7133 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7134
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7135 _create: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7136 this.element.addClass( "ui-buttonset" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7137 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7138
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7139 _init: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7140 this.refresh();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7141 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7142
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7143 _setOption: function( key, value ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7144 if ( key === "disabled" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7145 this.buttons.button( "option", key, value );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7146 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7147
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7148 $.Widget.prototype._setOption.apply( this, arguments );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7149 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7150
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7151 refresh: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7152 this.buttons = this.element.find( this.options.items )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7153 .filter( ":ui-button" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7154 .button( "refresh" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7155 .end()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7156 .not( ":ui-button" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7157 .button()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7158 .end()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7159 .map(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7160 return $( this ).button( "widget" )[ 0 ];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7161 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7162 .removeClass( "ui-corner-all ui-corner-left ui-corner-right" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7163 .filter( ":first" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7164 .addClass( "ui-corner-left" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7165 .end()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7166 .filter( ":last" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7167 .addClass( "ui-corner-right" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7168 .end()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7169 .end();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7170 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7171
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7172 destroy: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7173 this.element.removeClass( "ui-buttonset" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7174 this.buttons
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7175 .map(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7176 return $( this ).button( "widget" )[ 0 ];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7177 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7178 .removeClass( "ui-corner-left ui-corner-right" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7179 .end()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7180 .button( "destroy" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7181
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7182 $.Widget.prototype.destroy.call( this );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7183 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7184 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7185
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7186 }( jQuery ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7187 /*
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7188 * Note: While Microsoft is not the author of this file, Microsoft is
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7189 * offering you a license subject to the terms of the Microsoft Software
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7190 * License Terms for Microsoft ASP.NET Model View Controller 3.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7191 * Microsoft reserves all other rights. The notices below are provided
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7192 * for informational purposes only and are not the license terms under
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7193 * which Microsoft distributed this file.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7194 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7195 * jQuery UI Datepicker 1.8.7
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7196 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7197 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7198 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7199 * http://docs.jquery.com/UI/Datepicker
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7200 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7201 * Depends:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7202 * jquery.ui.core.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7203 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7204 (function( $, undefined ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7205
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7206 $.extend($.ui, { datepicker: { version: "1.8.7" } });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7207
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7208 var PROP_NAME = 'datepicker';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7209 var dpuuid = new Date().getTime();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7210
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7211 /* Date picker manager.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7212 Use the singleton instance of this class, $.datepicker, to interact with the date picker.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7213 Settings for (groups of) date pickers are maintained in an instance object,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7214 allowing multiple different settings on the same page. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7215
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7216 function Datepicker() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7217 this.debug = false; // Change this to true to start debugging
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7218 this._curInst = null; // The current instance in use
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7219 this._keyEvent = false; // If the last event was a key event
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7220 this._disabledInputs = []; // List of date picker inputs that have been disabled
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7221 this._datepickerShowing = false; // True if the popup picker is showing , false if not
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7222 this._inDialog = false; // True if showing within a "dialog", false if not
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7223 this._mainDivId = 'ui-datepicker-div'; // The ID of the main datepicker division
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7224 this._inlineClass = 'ui-datepicker-inline'; // The name of the inline marker class
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7225 this._appendClass = 'ui-datepicker-append'; // The name of the append marker class
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7226 this._triggerClass = 'ui-datepicker-trigger'; // The name of the trigger marker class
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7227 this._dialogClass = 'ui-datepicker-dialog'; // The name of the dialog marker class
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7228 this._disableClass = 'ui-datepicker-disabled'; // The name of the disabled covering marker class
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7229 this._unselectableClass = 'ui-datepicker-unselectable'; // The name of the unselectable cell marker class
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7230 this._currentClass = 'ui-datepicker-current-day'; // The name of the current day marker class
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7231 this._dayOverClass = 'ui-datepicker-days-cell-over'; // The name of the day hover marker class
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7232 this.regional = []; // Available regional settings, indexed by language code
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7233 this.regional[''] = { // Default regional settings
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7234 closeText: 'Done', // Display text for close link
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7235 prevText: 'Prev', // Display text for previous month link
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7236 nextText: 'Next', // Display text for next month link
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7237 currentText: 'Today', // Display text for current month link
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7238 monthNames: ['January','February','March','April','May','June',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7239 'July','August','September','October','November','December'], // Names of months for drop-down and formatting
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7240 monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], // For formatting
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7241 dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], // For formatting
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7242 dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], // For formatting
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7243 dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'], // Column headings for days starting at Sunday
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7244 weekHeader: 'Wk', // Column header for week of the year
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7245 dateFormat: 'mm/dd/yy', // See format options on parseDate
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7246 firstDay: 0, // The first day of the week, Sun = 0, Mon = 1, ...
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7247 isRTL: false, // True if right-to-left language, false if left-to-right
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7248 showMonthAfterYear: false, // True if the year select precedes month, false for month then year
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7249 yearSuffix: '' // Additional text to append to the year in the month headers
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7250 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7251 this._defaults = { // Global defaults for all the date picker instances
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7252 showOn: 'focus', // 'focus' for popup on focus,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7253 // 'button' for trigger button, or 'both' for either
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7254 showAnim: 'fadeIn', // Name of jQuery animation for popup
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7255 showOptions: {}, // Options for enhanced animations
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7256 defaultDate: null, // Used when field is blank: actual date,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7257 // +/-number for offset from today, null for today
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7258 appendText: '', // Display text following the input box, e.g. showing the format
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7259 buttonText: '...', // Text for trigger button
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7260 buttonImage: '', // URL for trigger button image
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7261 buttonImageOnly: false, // True if the image appears alone, false if it appears on a button
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7262 hideIfNoPrevNext: false, // True to hide next/previous month links
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7263 // if not applicable, false to just disable them
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7264 navigationAsDateFormat: false, // True if date formatting applied to prev/today/next links
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7265 gotoCurrent: false, // True if today link goes back to current selection instead
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7266 changeMonth: false, // True if month can be selected directly, false if only prev/next
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7267 changeYear: false, // True if year can be selected directly, false if only prev/next
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7268 yearRange: 'c-10:c+10', // Range of years to display in drop-down,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7269 // either relative to today's year (-nn:+nn), relative to currently displayed year
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7270 // (c-nn:c+nn), absolute (nnnn:nnnn), or a combination of the above (nnnn:-n)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7271 showOtherMonths: false, // True to show dates in other months, false to leave blank
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7272 selectOtherMonths: false, // True to allow selection of dates in other months, false for unselectable
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7273 showWeek: false, // True to show week of the year, false to not show it
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7274 calculateWeek: this.iso8601Week, // How to calculate the week of the year,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7275 // takes a Date and returns the number of the week for it
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7276 shortYearCutoff: '+10', // Short year values < this are in the current century,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7277 // > this are in the previous century,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7278 // string value starting with '+' for current year + value
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7279 minDate: null, // The earliest selectable date, or null for no limit
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7280 maxDate: null, // The latest selectable date, or null for no limit
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7281 duration: 'fast', // Duration of display/closure
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7282 beforeShowDay: null, // Function that takes a date and returns an array with
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7283 // [0] = true if selectable, false if not, [1] = custom CSS class name(s) or '',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7284 // [2] = cell title (optional), e.g. $.datepicker.noWeekends
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7285 beforeShow: null, // Function that takes an input field and
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7286 // returns a set of custom settings for the date picker
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7287 onSelect: null, // Define a callback function when a date is selected
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7288 onChangeMonthYear: null, // Define a callback function when the month or year is changed
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7289 onClose: null, // Define a callback function when the datepicker is closed
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7290 numberOfMonths: 1, // Number of months to show at a time
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7291 showCurrentAtPos: 0, // The position in multipe months at which to show the current month (starting at 0)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7292 stepMonths: 1, // Number of months to step back/forward
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7293 stepBigMonths: 12, // Number of months to step back/forward for the big links
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7294 altField: '', // Selector for an alternate field to store selected dates into
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7295 altFormat: '', // The date format to use for the alternate field
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7296 constrainInput: true, // The input is constrained by the current date format
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7297 showButtonPanel: false, // True to show button panel, false to not show it
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7298 autoSize: false // True to size the input for the date format, false to leave as is
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7299 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7300 $.extend(this._defaults, this.regional['']);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7301 this.dpDiv = $('<div id="' + this._mainDivId + '" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7302 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7303
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7304 $.extend(Datepicker.prototype, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7305 /* Class name added to elements to indicate already configured with a date picker. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7306 markerClassName: 'hasDatepicker',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7307
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7308 /* Debug logging (if enabled). */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7309 log: function () {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7310 if (this.debug)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7311 console.log.apply('', arguments);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7312 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7313
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7314 // TODO rename to "widget" when switching to widget factory
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7315 _widgetDatepicker: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7316 return this.dpDiv;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7317 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7318
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7319 /* Override the default settings for all instances of the date picker.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7320 @param settings object - the new settings to use as defaults (anonymous object)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7321 @return the manager object */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7322 setDefaults: function(settings) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7323 extendRemove(this._defaults, settings || {});
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7324 return this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7325 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7326
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7327 /* Attach the date picker to a jQuery selection.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7328 @param target element - the target input field or division or span
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7329 @param settings object - the new settings to use for this date picker instance (anonymous) */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7330 _attachDatepicker: function(target, settings) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7331 // check for settings on the control itself - in namespace 'date:'
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7332 var inlineSettings = null;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7333 for (var attrName in this._defaults) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7334 var attrValue = target.getAttribute('date:' + attrName);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7335 if (attrValue) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7336 inlineSettings = inlineSettings || {};
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7337 try {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7338 inlineSettings[attrName] = eval(attrValue);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7339 } catch (err) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7340 inlineSettings[attrName] = attrValue;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7341 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7342 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7343 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7344 var nodeName = target.nodeName.toLowerCase();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7345 var inline = (nodeName == 'div' || nodeName == 'span');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7346 if (!target.id) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7347 this.uuid += 1;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7348 target.id = 'dp' + this.uuid;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7349 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7350 var inst = this._newInst($(target), inline);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7351 inst.settings = $.extend({}, settings || {}, inlineSettings || {});
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7352 if (nodeName == 'input') {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7353 this._connectDatepicker(target, inst);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7354 } else if (inline) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7355 this._inlineDatepicker(target, inst);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7356 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7357 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7358
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7359 /* Create a new instance object. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7360 _newInst: function(target, inline) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7361 var id = target[0].id.replace(/([^A-Za-z0-9_-])/g, '\\\\$1'); // escape jQuery meta chars
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7362 return {id: id, input: target, // associated target
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7363 selectedDay: 0, selectedMonth: 0, selectedYear: 0, // current selection
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7364 drawMonth: 0, drawYear: 0, // month being drawn
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7365 inline: inline, // is datepicker inline or not
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7366 dpDiv: (!inline ? this.dpDiv : // presentation div
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7367 $('<div class="' + this._inlineClass + ' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))};
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7368 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7369
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7370 /* Attach the date picker to an input field. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7371 _connectDatepicker: function(target, inst) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7372 var input = $(target);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7373 inst.append = $([]);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7374 inst.trigger = $([]);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7375 if (input.hasClass(this.markerClassName))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7376 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7377 this._attachments(input, inst);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7378 input.addClass(this.markerClassName).keydown(this._doKeyDown).
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7379 keypress(this._doKeyPress).keyup(this._doKeyUp).
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7380 bind("setData.datepicker", function(event, key, value) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7381 inst.settings[key] = value;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7382 }).bind("getData.datepicker", function(event, key) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7383 return this._get(inst, key);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7384 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7385 this._autoSize(inst);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7386 $.data(target, PROP_NAME, inst);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7387 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7388
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7389 /* Make attachments based on settings. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7390 _attachments: function(input, inst) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7391 var appendText = this._get(inst, 'appendText');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7392 var isRTL = this._get(inst, 'isRTL');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7393 if (inst.append)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7394 inst.append.remove();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7395 if (appendText) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7396 inst.append = $('<span class="' + this._appendClass + '">' + appendText + '</span>');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7397 input[isRTL ? 'before' : 'after'](inst.append);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7398 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7399 input.unbind('focus', this._showDatepicker);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7400 if (inst.trigger)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7401 inst.trigger.remove();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7402 var showOn = this._get(inst, 'showOn');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7403 if (showOn == 'focus' || showOn == 'both') // pop-up date picker when in the marked field
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7404 input.focus(this._showDatepicker);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7405 if (showOn == 'button' || showOn == 'both') { // pop-up date picker when button clicked
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7406 var buttonText = this._get(inst, 'buttonText');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7407 var buttonImage = this._get(inst, 'buttonImage');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7408 inst.trigger = $(this._get(inst, 'buttonImageOnly') ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7409 $('<img/>').addClass(this._triggerClass).
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7410 attr({ src: buttonImage, alt: buttonText, title: buttonText }) :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7411 $('<button type="button"></button>').addClass(this._triggerClass).
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7412 html(buttonImage == '' ? buttonText : $('<img/>').attr(
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7413 { src:buttonImage, alt:buttonText, title:buttonText })));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7414 input[isRTL ? 'before' : 'after'](inst.trigger);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7415 inst.trigger.click(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7416 if ($.datepicker._datepickerShowing && $.datepicker._lastInput == input[0])
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7417 $.datepicker._hideDatepicker();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7418 else
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7419 $.datepicker._showDatepicker(input[0]);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7420 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7421 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7422 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7423 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7424
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7425 /* Apply the maximum length for the date format. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7426 _autoSize: function(inst) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7427 if (this._get(inst, 'autoSize') && !inst.inline) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7428 var date = new Date(2009, 12 - 1, 20); // Ensure double digits
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7429 var dateFormat = this._get(inst, 'dateFormat');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7430 if (dateFormat.match(/[DM]/)) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7431 var findMax = function(names) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7432 var max = 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7433 var maxI = 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7434 for (var i = 0; i < names.length; i++) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7435 if (names[i].length > max) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7436 max = names[i].length;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7437 maxI = i;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7438 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7439 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7440 return maxI;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7441 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7442 date.setMonth(findMax(this._get(inst, (dateFormat.match(/MM/) ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7443 'monthNames' : 'monthNamesShort'))));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7444 date.setDate(findMax(this._get(inst, (dateFormat.match(/DD/) ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7445 'dayNames' : 'dayNamesShort'))) + 20 - date.getDay());
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7446 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7447 inst.input.attr('size', this._formatDate(inst, date).length);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7448 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7449 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7450
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7451 /* Attach an inline date picker to a div. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7452 _inlineDatepicker: function(target, inst) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7453 var divSpan = $(target);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7454 if (divSpan.hasClass(this.markerClassName))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7455 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7456 divSpan.addClass(this.markerClassName).append(inst.dpDiv).
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7457 bind("setData.datepicker", function(event, key, value){
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7458 inst.settings[key] = value;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7459 }).bind("getData.datepicker", function(event, key){
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7460 return this._get(inst, key);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7461 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7462 $.data(target, PROP_NAME, inst);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7463 this._setDate(inst, this._getDefaultDate(inst), true);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7464 this._updateDatepicker(inst);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7465 this._updateAlternate(inst);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7466 inst.dpDiv.show();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7467 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7468
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7469 /* Pop-up the date picker in a "dialog" box.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7470 @param input element - ignored
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7471 @param date string or Date - the initial date to display
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7472 @param onSelect function - the function to call when a date is selected
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7473 @param settings object - update the dialog date picker instance's settings (anonymous object)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7474 @param pos int[2] - coordinates for the dialog's position within the screen or
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7475 event - with x/y coordinates or
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7476 leave empty for default (screen centre)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7477 @return the manager object */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7478 _dialogDatepicker: function(input, date, onSelect, settings, pos) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7479 var inst = this._dialogInst; // internal instance
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7480 if (!inst) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7481 this.uuid += 1;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7482 var id = 'dp' + this.uuid;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7483 this._dialogInput = $('<input type="text" id="' + id +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7484 '" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7485 this._dialogInput.keydown(this._doKeyDown);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7486 $('body').append(this._dialogInput);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7487 inst = this._dialogInst = this._newInst(this._dialogInput, false);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7488 inst.settings = {};
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7489 $.data(this._dialogInput[0], PROP_NAME, inst);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7490 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7491 extendRemove(inst.settings, settings || {});
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7492 date = (date && date.constructor == Date ? this._formatDate(inst, date) : date);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7493 this._dialogInput.val(date);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7494
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7495 this._pos = (pos ? (pos.length ? pos : [pos.pageX, pos.pageY]) : null);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7496 if (!this._pos) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7497 var browserWidth = document.documentElement.clientWidth;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7498 var browserHeight = document.documentElement.clientHeight;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7499 var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7500 var scrollY = document.documentElement.scrollTop || document.body.scrollTop;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7501 this._pos = // should use actual width/height below
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7502 [(browserWidth / 2) - 100 + scrollX, (browserHeight / 2) - 150 + scrollY];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7503 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7504
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7505 // move input on screen for focus, but hidden behind dialog
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7506 this._dialogInput.css('left', (this._pos[0] + 20) + 'px').css('top', this._pos[1] + 'px');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7507 inst.settings.onSelect = onSelect;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7508 this._inDialog = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7509 this.dpDiv.addClass(this._dialogClass);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7510 this._showDatepicker(this._dialogInput[0]);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7511 if ($.blockUI)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7512 $.blockUI(this.dpDiv);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7513 $.data(this._dialogInput[0], PROP_NAME, inst);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7514 return this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7515 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7516
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7517 /* Detach a datepicker from its control.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7518 @param target element - the target input field or division or span */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7519 _destroyDatepicker: function(target) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7520 var $target = $(target);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7521 var inst = $.data(target, PROP_NAME);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7522 if (!$target.hasClass(this.markerClassName)) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7523 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7524 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7525 var nodeName = target.nodeName.toLowerCase();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7526 $.removeData(target, PROP_NAME);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7527 if (nodeName == 'input') {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7528 inst.append.remove();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7529 inst.trigger.remove();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7530 $target.removeClass(this.markerClassName).
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7531 unbind('focus', this._showDatepicker).
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7532 unbind('keydown', this._doKeyDown).
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7533 unbind('keypress', this._doKeyPress).
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7534 unbind('keyup', this._doKeyUp);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7535 } else if (nodeName == 'div' || nodeName == 'span')
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7536 $target.removeClass(this.markerClassName).empty();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7537 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7538
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7539 /* Enable the date picker to a jQuery selection.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7540 @param target element - the target input field or division or span */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7541 _enableDatepicker: function(target) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7542 var $target = $(target);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7543 var inst = $.data(target, PROP_NAME);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7544 if (!$target.hasClass(this.markerClassName)) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7545 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7546 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7547 var nodeName = target.nodeName.toLowerCase();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7548 if (nodeName == 'input') {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7549 target.disabled = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7550 inst.trigger.filter('button').
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7551 each(function() { this.disabled = false; }).end().
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7552 filter('img').css({opacity: '1.0', cursor: ''});
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7553 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7554 else if (nodeName == 'div' || nodeName == 'span') {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7555 var inline = $target.children('.' + this._inlineClass);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7556 inline.children().removeClass('ui-state-disabled');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7557 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7558 this._disabledInputs = $.map(this._disabledInputs,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7559 function(value) { return (value == target ? null : value); }); // delete entry
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7560 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7561
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7562 /* Disable the date picker to a jQuery selection.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7563 @param target element - the target input field or division or span */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7564 _disableDatepicker: function(target) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7565 var $target = $(target);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7566 var inst = $.data(target, PROP_NAME);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7567 if (!$target.hasClass(this.markerClassName)) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7568 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7569 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7570 var nodeName = target.nodeName.toLowerCase();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7571 if (nodeName == 'input') {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7572 target.disabled = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7573 inst.trigger.filter('button').
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7574 each(function() { this.disabled = true; }).end().
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7575 filter('img').css({opacity: '0.5', cursor: 'default'});
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7576 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7577 else if (nodeName == 'div' || nodeName == 'span') {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7578 var inline = $target.children('.' + this._inlineClass);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7579 inline.children().addClass('ui-state-disabled');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7580 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7581 this._disabledInputs = $.map(this._disabledInputs,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7582 function(value) { return (value == target ? null : value); }); // delete entry
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7583 this._disabledInputs[this._disabledInputs.length] = target;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7584 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7585
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7586 /* Is the first field in a jQuery collection disabled as a datepicker?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7587 @param target element - the target input field or division or span
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7588 @return boolean - true if disabled, false if enabled */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7589 _isDisabledDatepicker: function(target) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7590 if (!target) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7591 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7592 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7593 for (var i = 0; i < this._disabledInputs.length; i++) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7594 if (this._disabledInputs[i] == target)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7595 return true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7596 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7597 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7598 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7599
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7600 /* Retrieve the instance data for the target control.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7601 @param target element - the target input field or division or span
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7602 @return object - the associated instance data
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7603 @throws error if a jQuery problem getting data */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7604 _getInst: function(target) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7605 try {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7606 return $.data(target, PROP_NAME);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7607 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7608 catch (err) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7609 throw 'Missing instance data for this datepicker';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7610 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7611 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7612
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7613 /* Update or retrieve the settings for a date picker attached to an input field or division.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7614 @param target element - the target input field or division or span
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7615 @param name object - the new settings to update or
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7616 string - the name of the setting to change or retrieve,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7617 when retrieving also 'all' for all instance settings or
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7618 'defaults' for all global defaults
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7619 @param value any - the new value for the setting
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7620 (omit if above is an object or to retrieve a value) */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7621 _optionDatepicker: function(target, name, value) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7622 var inst = this._getInst(target);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7623 if (arguments.length == 2 && typeof name == 'string') {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7624 return (name == 'defaults' ? $.extend({}, $.datepicker._defaults) :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7625 (inst ? (name == 'all' ? $.extend({}, inst.settings) :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7626 this._get(inst, name)) : null));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7627 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7628 var settings = name || {};
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7629 if (typeof name == 'string') {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7630 settings = {};
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7631 settings[name] = value;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7632 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7633 if (inst) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7634 if (this._curInst == inst) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7635 this._hideDatepicker();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7636 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7637 var date = this._getDateDatepicker(target, true);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7638 extendRemove(inst.settings, settings);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7639 this._attachments($(target), inst);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7640 this._autoSize(inst);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7641 this._setDateDatepicker(target, date);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7642 this._updateDatepicker(inst);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7643 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7644 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7645
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7646 // change method deprecated
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7647 _changeDatepicker: function(target, name, value) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7648 this._optionDatepicker(target, name, value);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7649 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7650
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7651 /* Redraw the date picker attached to an input field or division.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7652 @param target element - the target input field or division or span */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7653 _refreshDatepicker: function(target) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7654 var inst = this._getInst(target);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7655 if (inst) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7656 this._updateDatepicker(inst);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7657 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7658 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7659
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7660 /* Set the dates for a jQuery selection.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7661 @param target element - the target input field or division or span
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7662 @param date Date - the new date */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7663 _setDateDatepicker: function(target, date) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7664 var inst = this._getInst(target);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7665 if (inst) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7666 this._setDate(inst, date);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7667 this._updateDatepicker(inst);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7668 this._updateAlternate(inst);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7669 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7670 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7671
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7672 /* Get the date(s) for the first entry in a jQuery selection.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7673 @param target element - the target input field or division or span
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7674 @param noDefault boolean - true if no default date is to be used
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7675 @return Date - the current date */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7676 _getDateDatepicker: function(target, noDefault) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7677 var inst = this._getInst(target);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7678 if (inst && !inst.inline)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7679 this._setDateFromField(inst, noDefault);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7680 return (inst ? this._getDate(inst) : null);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7681 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7682
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7683 /* Handle keystrokes. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7684 _doKeyDown: function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7685 var inst = $.datepicker._getInst(event.target);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7686 var handled = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7687 var isRTL = inst.dpDiv.is('.ui-datepicker-rtl');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7688 inst._keyEvent = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7689 if ($.datepicker._datepickerShowing)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7690 switch (event.keyCode) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7691 case 9: $.datepicker._hideDatepicker();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7692 handled = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7693 break; // hide on tab out
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7694 case 13: var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7695 $.datepicker._currentClass + ')', inst.dpDiv);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7696 if (sel[0])
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7697 $.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7698 else
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7699 $.datepicker._hideDatepicker();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7700 return false; // don't submit the form
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7701 break; // select the value on enter
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7702 case 27: $.datepicker._hideDatepicker();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7703 break; // hide on escape
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7704 case 33: $.datepicker._adjustDate(event.target, (event.ctrlKey ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7705 -$.datepicker._get(inst, 'stepBigMonths') :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7706 -$.datepicker._get(inst, 'stepMonths')), 'M');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7707 break; // previous month/year on page up/+ ctrl
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7708 case 34: $.datepicker._adjustDate(event.target, (event.ctrlKey ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7709 +$.datepicker._get(inst, 'stepBigMonths') :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7710 +$.datepicker._get(inst, 'stepMonths')), 'M');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7711 break; // next month/year on page down/+ ctrl
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7712 case 35: if (event.ctrlKey || event.metaKey) $.datepicker._clearDate(event.target);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7713 handled = event.ctrlKey || event.metaKey;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7714 break; // clear on ctrl or command +end
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7715 case 36: if (event.ctrlKey || event.metaKey) $.datepicker._gotoToday(event.target);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7716 handled = event.ctrlKey || event.metaKey;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7717 break; // current on ctrl or command +home
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7718 case 37: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, (isRTL ? +1 : -1), 'D');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7719 handled = event.ctrlKey || event.metaKey;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7720 // -1 day on ctrl or command +left
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7721 if (event.originalEvent.altKey) $.datepicker._adjustDate(event.target, (event.ctrlKey ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7722 -$.datepicker._get(inst, 'stepBigMonths') :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7723 -$.datepicker._get(inst, 'stepMonths')), 'M');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7724 // next month/year on alt +left on Mac
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7725 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7726 case 38: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, -7, 'D');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7727 handled = event.ctrlKey || event.metaKey;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7728 break; // -1 week on ctrl or command +up
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7729 case 39: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, (isRTL ? -1 : +1), 'D');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7730 handled = event.ctrlKey || event.metaKey;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7731 // +1 day on ctrl or command +right
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7732 if (event.originalEvent.altKey) $.datepicker._adjustDate(event.target, (event.ctrlKey ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7733 +$.datepicker._get(inst, 'stepBigMonths') :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7734 +$.datepicker._get(inst, 'stepMonths')), 'M');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7735 // next month/year on alt +right
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7736 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7737 case 40: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, +7, 'D');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7738 handled = event.ctrlKey || event.metaKey;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7739 break; // +1 week on ctrl or command +down
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7740 default: handled = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7741 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7742 else if (event.keyCode == 36 && event.ctrlKey) // display the date picker on ctrl+home
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7743 $.datepicker._showDatepicker(this);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7744 else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7745 handled = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7746 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7747 if (handled) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7748 event.preventDefault();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7749 event.stopPropagation();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7750 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7751 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7752
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7753 /* Filter entered characters - based on date format. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7754 _doKeyPress: function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7755 var inst = $.datepicker._getInst(event.target);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7756 if ($.datepicker._get(inst, 'constrainInput')) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7757 var chars = $.datepicker._possibleChars($.datepicker._get(inst, 'dateFormat'));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7758 var chr = String.fromCharCode(event.charCode == undefined ? event.keyCode : event.charCode);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7759 return event.ctrlKey || event.metaKey || (chr < ' ' || !chars || chars.indexOf(chr) > -1);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7760 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7761 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7762
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7763 /* Synchronise manual entry and field/alternate field. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7764 _doKeyUp: function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7765 var inst = $.datepicker._getInst(event.target);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7766 if (inst.input.val() != inst.lastVal) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7767 try {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7768 var date = $.datepicker.parseDate($.datepicker._get(inst, 'dateFormat'),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7769 (inst.input ? inst.input.val() : null),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7770 $.datepicker._getFormatConfig(inst));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7771 if (date) { // only if valid
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7772 $.datepicker._setDateFromField(inst);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7773 $.datepicker._updateAlternate(inst);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7774 $.datepicker._updateDatepicker(inst);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7775 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7776 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7777 catch (event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7778 $.datepicker.log(event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7779 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7780 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7781 return true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7782 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7783
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7784 /* Pop-up the date picker for a given input field.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7785 @param input element - the input field attached to the date picker or
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7786 event - if triggered by focus */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7787 _showDatepicker: function(input) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7788 input = input.target || input;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7789 if (input.nodeName.toLowerCase() != 'input') // find from button/image trigger
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7790 input = $('input', input.parentNode)[0];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7791 if ($.datepicker._isDisabledDatepicker(input) || $.datepicker._lastInput == input) // already here
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7792 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7793 var inst = $.datepicker._getInst(input);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7794 if ($.datepicker._curInst && $.datepicker._curInst != inst) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7795 $.datepicker._curInst.dpDiv.stop(true, true);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7796 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7797 var beforeShow = $.datepicker._get(inst, 'beforeShow');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7798 extendRemove(inst.settings, (beforeShow ? beforeShow.apply(input, [input, inst]) : {}));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7799 inst.lastVal = null;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7800 $.datepicker._lastInput = input;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7801 $.datepicker._setDateFromField(inst);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7802 if ($.datepicker._inDialog) // hide cursor
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7803 input.value = '';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7804 if (!$.datepicker._pos) { // position below input
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7805 $.datepicker._pos = $.datepicker._findPos(input);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7806 $.datepicker._pos[1] += input.offsetHeight; // add the height
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7807 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7808 var isFixed = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7809 $(input).parents().each(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7810 isFixed |= $(this).css('position') == 'fixed';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7811 return !isFixed;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7812 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7813 if (isFixed && $.browser.opera) { // correction for Opera when fixed and scrolled
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7814 $.datepicker._pos[0] -= document.documentElement.scrollLeft;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7815 $.datepicker._pos[1] -= document.documentElement.scrollTop;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7816 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7817 var offset = {left: $.datepicker._pos[0], top: $.datepicker._pos[1]};
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7818 $.datepicker._pos = null;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7819 //to avoid flashes on Firefox
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7820 inst.dpDiv.empty();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7821 // determine sizing offscreen
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7822 inst.dpDiv.css({position: 'absolute', display: 'block', top: '-1000px'});
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7823 $.datepicker._updateDatepicker(inst);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7824 // fix width for dynamic number of date pickers
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7825 // and adjust position before showing
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7826 offset = $.datepicker._checkOffset(inst, offset, isFixed);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7827 inst.dpDiv.css({position: ($.datepicker._inDialog && $.blockUI ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7828 'static' : (isFixed ? 'fixed' : 'absolute')), display: 'none',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7829 left: offset.left + 'px', top: offset.top + 'px'});
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7830 if (!inst.inline) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7831 var showAnim = $.datepicker._get(inst, 'showAnim');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7832 var duration = $.datepicker._get(inst, 'duration');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7833 var postProcess = function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7834 $.datepicker._datepickerShowing = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7835 var cover = inst.dpDiv.find('iframe.ui-datepicker-cover'); // IE6- only
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7836 if( !! cover.length ){
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7837 var borders = $.datepicker._getBorders(inst.dpDiv);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7838 cover.css({left: -borders[0], top: -borders[1],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7839 width: inst.dpDiv.outerWidth(), height: inst.dpDiv.outerHeight()});
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7840 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7841 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7842 inst.dpDiv.zIndex($(input).zIndex()+1);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7843 if ($.effects && $.effects[showAnim])
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7844 inst.dpDiv.show(showAnim, $.datepicker._get(inst, 'showOptions'), duration, postProcess);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7845 else
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7846 inst.dpDiv[showAnim || 'show']((showAnim ? duration : null), postProcess);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7847 if (!showAnim || !duration)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7848 postProcess();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7849 if (inst.input.is(':visible') && !inst.input.is(':disabled'))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7850 inst.input.focus();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7851 $.datepicker._curInst = inst;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7852 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7853 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7854
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7855 /* Generate the date picker content. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7856 _updateDatepicker: function(inst) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7857 var self = this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7858 var borders = $.datepicker._getBorders(inst.dpDiv);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7859 inst.dpDiv.empty().append(this._generateHTML(inst));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7860 var cover = inst.dpDiv.find('iframe.ui-datepicker-cover'); // IE6- only
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7861 if( !!cover.length ){ //avoid call to outerXXXX() when not in IE6
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7862 cover.css({left: -borders[0], top: -borders[1], width: inst.dpDiv.outerWidth(), height: inst.dpDiv.outerHeight()})
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7863 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7864 inst.dpDiv.find('button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a')
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7865 .bind('mouseout', function(){
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7866 $(this).removeClass('ui-state-hover');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7867 if(this.className.indexOf('ui-datepicker-prev') != -1) $(this).removeClass('ui-datepicker-prev-hover');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7868 if(this.className.indexOf('ui-datepicker-next') != -1) $(this).removeClass('ui-datepicker-next-hover');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7869 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7870 .bind('mouseover', function(){
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7871 if (!self._isDisabledDatepicker( inst.inline ? inst.dpDiv.parent()[0] : inst.input[0])) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7872 $(this).parents('.ui-datepicker-calendar').find('a').removeClass('ui-state-hover');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7873 $(this).addClass('ui-state-hover');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7874 if(this.className.indexOf('ui-datepicker-prev') != -1) $(this).addClass('ui-datepicker-prev-hover');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7875 if(this.className.indexOf('ui-datepicker-next') != -1) $(this).addClass('ui-datepicker-next-hover');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7876 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7877 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7878 .end()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7879 .find('.' + this._dayOverClass + ' a')
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7880 .trigger('mouseover')
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7881 .end();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7882 var numMonths = this._getNumberOfMonths(inst);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7883 var cols = numMonths[1];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7884 var width = 17;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7885 if (cols > 1)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7886 inst.dpDiv.addClass('ui-datepicker-multi-' + cols).css('width', (width * cols) + 'em');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7887 else
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7888 inst.dpDiv.removeClass('ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4').width('');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7889 inst.dpDiv[(numMonths[0] != 1 || numMonths[1] != 1 ? 'add' : 'remove') +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7890 'Class']('ui-datepicker-multi');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7891 inst.dpDiv[(this._get(inst, 'isRTL') ? 'add' : 'remove') +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7892 'Class']('ui-datepicker-rtl');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7893 if (inst == $.datepicker._curInst && $.datepicker._datepickerShowing && inst.input &&
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7894 inst.input.is(':visible') && !inst.input.is(':disabled'))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7895 inst.input.focus();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7896 // deffered render of the years select (to avoid flashes on Firefox)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7897 if( inst.yearshtml ){
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7898 var origyearshtml = inst.yearshtml;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7899 setTimeout(function(){
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7900 //assure that inst.yearshtml didn't change.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7901 if( origyearshtml === inst.yearshtml ){
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7902 inst.dpDiv.find('select.ui-datepicker-year:first').replaceWith(inst.yearshtml);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7903 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7904 origyearshtml = inst.yearshtml = null;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7905 }, 0);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7906 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7907 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7908
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7909 /* Retrieve the size of left and top borders for an element.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7910 @param elem (jQuery object) the element of interest
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7911 @return (number[2]) the left and top borders */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7912 _getBorders: function(elem) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7913 var convert = function(value) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7914 return {thin: 1, medium: 2, thick: 3}[value] || value;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7915 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7916 return [parseFloat(convert(elem.css('border-left-width'))),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7917 parseFloat(convert(elem.css('border-top-width')))];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7918 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7919
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7920 /* Check positioning to remain on screen. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7921 _checkOffset: function(inst, offset, isFixed) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7922 var dpWidth = inst.dpDiv.outerWidth();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7923 var dpHeight = inst.dpDiv.outerHeight();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7924 var inputWidth = inst.input ? inst.input.outerWidth() : 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7925 var inputHeight = inst.input ? inst.input.outerHeight() : 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7926 var viewWidth = document.documentElement.clientWidth + $(document).scrollLeft();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7927 var viewHeight = document.documentElement.clientHeight + $(document).scrollTop();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7928
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7929 offset.left -= (this._get(inst, 'isRTL') ? (dpWidth - inputWidth) : 0);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7930 offset.left -= (isFixed && offset.left == inst.input.offset().left) ? $(document).scrollLeft() : 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7931 offset.top -= (isFixed && offset.top == (inst.input.offset().top + inputHeight)) ? $(document).scrollTop() : 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7932
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7933 // now check if datepicker is showing outside window viewport - move to a better place if so.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7934 offset.left -= Math.min(offset.left, (offset.left + dpWidth > viewWidth && viewWidth > dpWidth) ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7935 Math.abs(offset.left + dpWidth - viewWidth) : 0);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7936 offset.top -= Math.min(offset.top, (offset.top + dpHeight > viewHeight && viewHeight > dpHeight) ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7937 Math.abs(dpHeight + inputHeight) : 0);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7938
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7939 return offset;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7940 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7941
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7942 /* Find an object's position on the screen. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7943 _findPos: function(obj) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7944 var inst = this._getInst(obj);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7945 var isRTL = this._get(inst, 'isRTL');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7946 while (obj && (obj.type == 'hidden' || obj.nodeType != 1)) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7947 obj = obj[isRTL ? 'previousSibling' : 'nextSibling'];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7948 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7949 var position = $(obj).offset();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7950 return [position.left, position.top];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7951 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7952
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7953 /* Hide the date picker from view.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7954 @param input element - the input field attached to the date picker */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7955 _hideDatepicker: function(input) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7956 var inst = this._curInst;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7957 if (!inst || (input && inst != $.data(input, PROP_NAME)))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7958 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7959 if (this._datepickerShowing) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7960 var showAnim = this._get(inst, 'showAnim');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7961 var duration = this._get(inst, 'duration');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7962 var postProcess = function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7963 $.datepicker._tidyDialog(inst);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7964 this._curInst = null;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7965 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7966 if ($.effects && $.effects[showAnim])
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7967 inst.dpDiv.hide(showAnim, $.datepicker._get(inst, 'showOptions'), duration, postProcess);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7968 else
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7969 inst.dpDiv[(showAnim == 'slideDown' ? 'slideUp' :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7970 (showAnim == 'fadeIn' ? 'fadeOut' : 'hide'))]((showAnim ? duration : null), postProcess);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7971 if (!showAnim)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7972 postProcess();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7973 var onClose = this._get(inst, 'onClose');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7974 if (onClose)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7975 onClose.apply((inst.input ? inst.input[0] : null),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7976 [(inst.input ? inst.input.val() : ''), inst]); // trigger custom callback
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7977 this._datepickerShowing = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7978 this._lastInput = null;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7979 if (this._inDialog) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7980 this._dialogInput.css({ position: 'absolute', left: '0', top: '-100px' });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7981 if ($.blockUI) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7982 $.unblockUI();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7983 $('body').append(this.dpDiv);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7984 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7985 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7986 this._inDialog = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7987 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7988 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7989
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7990 /* Tidy up after a dialog display. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7991 _tidyDialog: function(inst) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7992 inst.dpDiv.removeClass(this._dialogClass).unbind('.ui-datepicker-calendar');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7993 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7994
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7995 /* Close date picker if clicked elsewhere. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7996 _checkExternalClick: function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7997 if (!$.datepicker._curInst)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7998 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
7999 var $target = $(event.target);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8000 if ($target[0].id != $.datepicker._mainDivId &&
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8001 $target.parents('#' + $.datepicker._mainDivId).length == 0 &&
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8002 !$target.hasClass($.datepicker.markerClassName) &&
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8003 !$target.hasClass($.datepicker._triggerClass) &&
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8004 $.datepicker._datepickerShowing && !($.datepicker._inDialog && $.blockUI))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8005 $.datepicker._hideDatepicker();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8006 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8007
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8008 /* Adjust one of the date sub-fields. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8009 _adjustDate: function(id, offset, period) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8010 var target = $(id);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8011 var inst = this._getInst(target[0]);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8012 if (this._isDisabledDatepicker(target[0])) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8013 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8014 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8015 this._adjustInstDate(inst, offset +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8016 (period == 'M' ? this._get(inst, 'showCurrentAtPos') : 0), // undo positioning
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8017 period);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8018 this._updateDatepicker(inst);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8019 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8020
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8021 /* Action for current link. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8022 _gotoToday: function(id) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8023 var target = $(id);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8024 var inst = this._getInst(target[0]);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8025 if (this._get(inst, 'gotoCurrent') && inst.currentDay) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8026 inst.selectedDay = inst.currentDay;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8027 inst.drawMonth = inst.selectedMonth = inst.currentMonth;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8028 inst.drawYear = inst.selectedYear = inst.currentYear;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8029 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8030 else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8031 var date = new Date();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8032 inst.selectedDay = date.getDate();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8033 inst.drawMonth = inst.selectedMonth = date.getMonth();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8034 inst.drawYear = inst.selectedYear = date.getFullYear();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8035 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8036 this._notifyChange(inst);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8037 this._adjustDate(target);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8038 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8039
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8040 /* Action for selecting a new month/year. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8041 _selectMonthYear: function(id, select, period) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8042 var target = $(id);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8043 var inst = this._getInst(target[0]);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8044 inst._selectingMonthYear = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8045 inst['selected' + (period == 'M' ? 'Month' : 'Year')] =
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8046 inst['draw' + (period == 'M' ? 'Month' : 'Year')] =
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8047 parseInt(select.options[select.selectedIndex].value,10);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8048 this._notifyChange(inst);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8049 this._adjustDate(target);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8050 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8051
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8052 /* Restore input focus after not changing month/year. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8053 _clickMonthYear: function(id) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8054 var target = $(id);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8055 var inst = this._getInst(target[0]);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8056 if (inst.input && inst._selectingMonthYear) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8057 setTimeout(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8058 inst.input.focus();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8059 }, 0);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8060 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8061 inst._selectingMonthYear = !inst._selectingMonthYear;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8062 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8063
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8064 /* Action for selecting a day. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8065 _selectDay: function(id, month, year, td) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8066 var target = $(id);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8067 if ($(td).hasClass(this._unselectableClass) || this._isDisabledDatepicker(target[0])) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8068 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8069 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8070 var inst = this._getInst(target[0]);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8071 inst.selectedDay = inst.currentDay = $('a', td).html();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8072 inst.selectedMonth = inst.currentMonth = month;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8073 inst.selectedYear = inst.currentYear = year;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8074 this._selectDate(id, this._formatDate(inst,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8075 inst.currentDay, inst.currentMonth, inst.currentYear));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8076 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8077
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8078 /* Erase the input field and hide the date picker. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8079 _clearDate: function(id) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8080 var target = $(id);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8081 var inst = this._getInst(target[0]);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8082 this._selectDate(target, '');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8083 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8084
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8085 /* Update the input field with the selected date. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8086 _selectDate: function(id, dateStr) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8087 var target = $(id);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8088 var inst = this._getInst(target[0]);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8089 dateStr = (dateStr != null ? dateStr : this._formatDate(inst));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8090 if (inst.input)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8091 inst.input.val(dateStr);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8092 this._updateAlternate(inst);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8093 var onSelect = this._get(inst, 'onSelect');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8094 if (onSelect)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8095 onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]); // trigger custom callback
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8096 else if (inst.input)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8097 inst.input.trigger('change'); // fire the change event
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8098 if (inst.inline)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8099 this._updateDatepicker(inst);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8100 else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8101 this._hideDatepicker();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8102 this._lastInput = inst.input[0];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8103 if (typeof(inst.input[0]) != 'object')
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8104 inst.input.focus(); // restore focus
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8105 this._lastInput = null;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8106 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8107 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8108
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8109 /* Update any alternate field to synchronise with the main field. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8110 _updateAlternate: function(inst) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8111 var altField = this._get(inst, 'altField');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8112 if (altField) { // update alternate field too
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8113 var altFormat = this._get(inst, 'altFormat') || this._get(inst, 'dateFormat');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8114 var date = this._getDate(inst);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8115 var dateStr = this.formatDate(altFormat, date, this._getFormatConfig(inst));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8116 $(altField).each(function() { $(this).val(dateStr); });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8117 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8118 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8119
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8120 /* Set as beforeShowDay function to prevent selection of weekends.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8121 @param date Date - the date to customise
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8122 @return [boolean, string] - is this date selectable?, what is its CSS class? */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8123 noWeekends: function(date) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8124 var day = date.getDay();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8125 return [(day > 0 && day < 6), ''];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8126 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8127
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8128 /* Set as calculateWeek to determine the week of the year based on the ISO 8601 definition.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8129 @param date Date - the date to get the week for
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8130 @return number - the number of the week within the year that contains this date */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8131 iso8601Week: function(date) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8132 var checkDate = new Date(date.getTime());
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8133 // Find Thursday of this week starting on Monday
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8134 checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8135 var time = checkDate.getTime();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8136 checkDate.setMonth(0); // Compare with Jan 1
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8137 checkDate.setDate(1);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8138 return Math.floor(Math.round((time - checkDate) / 86400000) / 7) + 1;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8139 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8140
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8141 /* Parse a string value into a date object.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8142 See formatDate below for the possible formats.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8143
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8144 @param format string - the expected format of the date
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8145 @param value string - the date in the above format
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8146 @param settings Object - attributes include:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8147 shortYearCutoff number - the cutoff year for determining the century (optional)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8148 dayNamesShort string[7] - abbreviated names of the days from Sunday (optional)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8149 dayNames string[7] - names of the days from Sunday (optional)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8150 monthNamesShort string[12] - abbreviated names of the months (optional)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8151 monthNames string[12] - names of the months (optional)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8152 @return Date - the extracted date value or null if value is blank */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8153 parseDate: function (format, value, settings) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8154 if (format == null || value == null)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8155 throw 'Invalid arguments';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8156 value = (typeof value == 'object' ? value.toString() : value + '');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8157 if (value == '')
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8158 return null;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8159 var shortYearCutoff = (settings ? settings.shortYearCutoff : null) || this._defaults.shortYearCutoff;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8160 var dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8161 var dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8162 var monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8163 var monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8164 var year = -1;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8165 var month = -1;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8166 var day = -1;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8167 var doy = -1;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8168 var literal = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8169 // Check whether a format character is doubled
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8170 var lookAhead = function(match) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8171 var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8172 if (matches)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8173 iFormat++;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8174 return matches;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8175 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8176 // Extract a number from the string value
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8177 var getNumber = function(match) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8178 var isDoubled = lookAhead(match);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8179 var size = (match == '@' ? 14 : (match == '!' ? 20 :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8180 (match == 'y' && isDoubled ? 4 : (match == 'o' ? 3 : 2))));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8181 var digits = new RegExp('^\\d{1,' + size + '}');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8182 var num = value.substring(iValue).match(digits);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8183 if (!num)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8184 throw 'Missing number at position ' + iValue;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8185 iValue += num[0].length;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8186 return parseInt(num[0], 10);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8187 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8188 // Extract a name from the string value and convert to an index
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8189 var getName = function(match, shortNames, longNames) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8190 var names = (lookAhead(match) ? longNames : shortNames);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8191 for (var i = 0; i < names.length; i++) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8192 if (value.substr(iValue, names[i].length).toLowerCase() == names[i].toLowerCase()) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8193 iValue += names[i].length;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8194 return i + 1;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8195 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8196 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8197 throw 'Unknown name at position ' + iValue;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8198 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8199 // Confirm that a literal character matches the string value
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8200 var checkLiteral = function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8201 if (value.charAt(iValue) != format.charAt(iFormat))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8202 throw 'Unexpected literal at position ' + iValue;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8203 iValue++;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8204 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8205 var iValue = 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8206 for (var iFormat = 0; iFormat < format.length; iFormat++) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8207 if (literal)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8208 if (format.charAt(iFormat) == "'" && !lookAhead("'"))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8209 literal = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8210 else
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8211 checkLiteral();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8212 else
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8213 switch (format.charAt(iFormat)) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8214 case 'd':
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8215 day = getNumber('d');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8216 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8217 case 'D':
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8218 getName('D', dayNamesShort, dayNames);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8219 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8220 case 'o':
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8221 doy = getNumber('o');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8222 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8223 case 'm':
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8224 month = getNumber('m');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8225 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8226 case 'M':
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8227 month = getName('M', monthNamesShort, monthNames);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8228 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8229 case 'y':
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8230 year = getNumber('y');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8231 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8232 case '@':
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8233 var date = new Date(getNumber('@'));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8234 year = date.getFullYear();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8235 month = date.getMonth() + 1;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8236 day = date.getDate();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8237 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8238 case '!':
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8239 var date = new Date((getNumber('!') - this._ticksTo1970) / 10000);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8240 year = date.getFullYear();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8241 month = date.getMonth() + 1;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8242 day = date.getDate();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8243 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8244 case "'":
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8245 if (lookAhead("'"))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8246 checkLiteral();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8247 else
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8248 literal = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8249 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8250 default:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8251 checkLiteral();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8252 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8253 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8254 if (year == -1)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8255 year = new Date().getFullYear();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8256 else if (year < 100)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8257 year += new Date().getFullYear() - new Date().getFullYear() % 100 +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8258 (year <= shortYearCutoff ? 0 : -100);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8259 if (doy > -1) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8260 month = 1;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8261 day = doy;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8262 do {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8263 var dim = this._getDaysInMonth(year, month - 1);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8264 if (day <= dim)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8265 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8266 month++;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8267 day -= dim;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8268 } while (true);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8269 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8270 var date = this._daylightSavingAdjust(new Date(year, month - 1, day));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8271 if (date.getFullYear() != year || date.getMonth() + 1 != month || date.getDate() != day)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8272 throw 'Invalid date'; // E.g. 31/02/*
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8273 return date;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8274 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8275
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8276 /* Standard date formats. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8277 ATOM: 'yy-mm-dd', // RFC 3339 (ISO 8601)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8278 COOKIE: 'D, dd M yy',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8279 ISO_8601: 'yy-mm-dd',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8280 RFC_822: 'D, d M y',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8281 RFC_850: 'DD, dd-M-y',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8282 RFC_1036: 'D, d M y',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8283 RFC_1123: 'D, d M yy',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8284 RFC_2822: 'D, d M yy',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8285 RSS: 'D, d M y', // RFC 822
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8286 TICKS: '!',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8287 TIMESTAMP: '@',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8288 W3C: 'yy-mm-dd', // ISO 8601
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8289
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8290 _ticksTo1970: (((1970 - 1) * 365 + Math.floor(1970 / 4) - Math.floor(1970 / 100) +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8291 Math.floor(1970 / 400)) * 24 * 60 * 60 * 10000000),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8292
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8293 /* Format a date object into a string value.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8294 The format can be combinations of the following:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8295 d - day of month (no leading zero)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8296 dd - day of month (two digit)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8297 o - day of year (no leading zeros)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8298 oo - day of year (three digit)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8299 D - day name short
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8300 DD - day name long
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8301 m - month of year (no leading zero)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8302 mm - month of year (two digit)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8303 M - month name short
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8304 MM - month name long
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8305 y - year (two digit)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8306 yy - year (four digit)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8307 @ - Unix timestamp (ms since 01/01/1970)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8308 ! - Windows ticks (100ns since 01/01/0001)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8309 '...' - literal text
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8310 '' - single quote
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8311
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8312 @param format string - the desired format of the date
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8313 @param date Date - the date value to format
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8314 @param settings Object - attributes include:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8315 dayNamesShort string[7] - abbreviated names of the days from Sunday (optional)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8316 dayNames string[7] - names of the days from Sunday (optional)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8317 monthNamesShort string[12] - abbreviated names of the months (optional)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8318 monthNames string[12] - names of the months (optional)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8319 @return string - the date in the above format */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8320 formatDate: function (format, date, settings) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8321 if (!date)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8322 return '';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8323 var dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8324 var dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8325 var monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8326 var monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8327 // Check whether a format character is doubled
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8328 var lookAhead = function(match) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8329 var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8330 if (matches)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8331 iFormat++;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8332 return matches;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8333 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8334 // Format a number, with leading zero if necessary
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8335 var formatNumber = function(match, value, len) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8336 var num = '' + value;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8337 if (lookAhead(match))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8338 while (num.length < len)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8339 num = '0' + num;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8340 return num;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8341 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8342 // Format a name, short or long as requested
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8343 var formatName = function(match, value, shortNames, longNames) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8344 return (lookAhead(match) ? longNames[value] : shortNames[value]);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8345 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8346 var output = '';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8347 var literal = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8348 if (date)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8349 for (var iFormat = 0; iFormat < format.length; iFormat++) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8350 if (literal)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8351 if (format.charAt(iFormat) == "'" && !lookAhead("'"))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8352 literal = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8353 else
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8354 output += format.charAt(iFormat);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8355 else
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8356 switch (format.charAt(iFormat)) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8357 case 'd':
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8358 output += formatNumber('d', date.getDate(), 2);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8359 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8360 case 'D':
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8361 output += formatName('D', date.getDay(), dayNamesShort, dayNames);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8362 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8363 case 'o':
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8364 output += formatNumber('o',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8365 (date.getTime() - new Date(date.getFullYear(), 0, 0).getTime()) / 86400000, 3);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8366 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8367 case 'm':
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8368 output += formatNumber('m', date.getMonth() + 1, 2);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8369 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8370 case 'M':
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8371 output += formatName('M', date.getMonth(), monthNamesShort, monthNames);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8372 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8373 case 'y':
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8374 output += (lookAhead('y') ? date.getFullYear() :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8375 (date.getYear() % 100 < 10 ? '0' : '') + date.getYear() % 100);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8376 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8377 case '@':
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8378 output += date.getTime();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8379 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8380 case '!':
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8381 output += date.getTime() * 10000 + this._ticksTo1970;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8382 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8383 case "'":
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8384 if (lookAhead("'"))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8385 output += "'";
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8386 else
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8387 literal = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8388 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8389 default:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8390 output += format.charAt(iFormat);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8391 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8392 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8393 return output;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8394 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8395
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8396 /* Extract all possible characters from the date format. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8397 _possibleChars: function (format) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8398 var chars = '';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8399 var literal = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8400 // Check whether a format character is doubled
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8401 var lookAhead = function(match) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8402 var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8403 if (matches)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8404 iFormat++;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8405 return matches;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8406 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8407 for (var iFormat = 0; iFormat < format.length; iFormat++)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8408 if (literal)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8409 if (format.charAt(iFormat) == "'" && !lookAhead("'"))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8410 literal = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8411 else
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8412 chars += format.charAt(iFormat);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8413 else
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8414 switch (format.charAt(iFormat)) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8415 case 'd': case 'm': case 'y': case '@':
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8416 chars += '0123456789';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8417 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8418 case 'D': case 'M':
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8419 return null; // Accept anything
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8420 case "'":
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8421 if (lookAhead("'"))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8422 chars += "'";
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8423 else
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8424 literal = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8425 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8426 default:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8427 chars += format.charAt(iFormat);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8428 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8429 return chars;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8430 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8431
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8432 /* Get a setting value, defaulting if necessary. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8433 _get: function(inst, name) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8434 return inst.settings[name] !== undefined ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8435 inst.settings[name] : this._defaults[name];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8436 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8437
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8438 /* Parse existing date and initialise date picker. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8439 _setDateFromField: function(inst, noDefault) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8440 if (inst.input.val() == inst.lastVal) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8441 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8442 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8443 var dateFormat = this._get(inst, 'dateFormat');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8444 var dates = inst.lastVal = inst.input ? inst.input.val() : null;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8445 var date, defaultDate;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8446 date = defaultDate = this._getDefaultDate(inst);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8447 var settings = this._getFormatConfig(inst);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8448 try {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8449 date = this.parseDate(dateFormat, dates, settings) || defaultDate;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8450 } catch (event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8451 this.log(event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8452 dates = (noDefault ? '' : dates);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8453 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8454 inst.selectedDay = date.getDate();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8455 inst.drawMonth = inst.selectedMonth = date.getMonth();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8456 inst.drawYear = inst.selectedYear = date.getFullYear();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8457 inst.currentDay = (dates ? date.getDate() : 0);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8458 inst.currentMonth = (dates ? date.getMonth() : 0);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8459 inst.currentYear = (dates ? date.getFullYear() : 0);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8460 this._adjustInstDate(inst);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8461 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8462
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8463 /* Retrieve the default date shown on opening. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8464 _getDefaultDate: function(inst) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8465 return this._restrictMinMax(inst,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8466 this._determineDate(inst, this._get(inst, 'defaultDate'), new Date()));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8467 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8468
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8469 /* A date may be specified as an exact value or a relative one. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8470 _determineDate: function(inst, date, defaultDate) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8471 var offsetNumeric = function(offset) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8472 var date = new Date();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8473 date.setDate(date.getDate() + offset);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8474 return date;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8475 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8476 var offsetString = function(offset) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8477 try {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8478 return $.datepicker.parseDate($.datepicker._get(inst, 'dateFormat'),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8479 offset, $.datepicker._getFormatConfig(inst));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8480 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8481 catch (e) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8482 // Ignore
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8483 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8484 var date = (offset.toLowerCase().match(/^c/) ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8485 $.datepicker._getDate(inst) : null) || new Date();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8486 var year = date.getFullYear();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8487 var month = date.getMonth();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8488 var day = date.getDate();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8489 var pattern = /([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8490 var matches = pattern.exec(offset);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8491 while (matches) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8492 switch (matches[2] || 'd') {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8493 case 'd' : case 'D' :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8494 day += parseInt(matches[1],10); break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8495 case 'w' : case 'W' :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8496 day += parseInt(matches[1],10) * 7; break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8497 case 'm' : case 'M' :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8498 month += parseInt(matches[1],10);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8499 day = Math.min(day, $.datepicker._getDaysInMonth(year, month));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8500 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8501 case 'y': case 'Y' :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8502 year += parseInt(matches[1],10);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8503 day = Math.min(day, $.datepicker._getDaysInMonth(year, month));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8504 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8505 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8506 matches = pattern.exec(offset);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8507 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8508 return new Date(year, month, day);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8509 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8510 var newDate = (date == null || date === '' ? defaultDate : (typeof date == 'string' ? offsetString(date) :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8511 (typeof date == 'number' ? (isNaN(date) ? defaultDate : offsetNumeric(date)) : new Date(date.getTime()))));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8512 newDate = (newDate && newDate.toString() == 'Invalid Date' ? defaultDate : newDate);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8513 if (newDate) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8514 newDate.setHours(0);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8515 newDate.setMinutes(0);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8516 newDate.setSeconds(0);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8517 newDate.setMilliseconds(0);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8518 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8519 return this._daylightSavingAdjust(newDate);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8520 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8521
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8522 /* Handle switch to/from daylight saving.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8523 Hours may be non-zero on daylight saving cut-over:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8524 > 12 when midnight changeover, but then cannot generate
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8525 midnight datetime, so jump to 1AM, otherwise reset.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8526 @param date (Date) the date to check
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8527 @return (Date) the corrected date */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8528 _daylightSavingAdjust: function(date) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8529 if (!date) return null;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8530 date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8531 return date;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8532 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8533
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8534 /* Set the date(s) directly. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8535 _setDate: function(inst, date, noChange) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8536 var clear = !date;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8537 var origMonth = inst.selectedMonth;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8538 var origYear = inst.selectedYear;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8539 var newDate = this._restrictMinMax(inst, this._determineDate(inst, date, new Date()));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8540 inst.selectedDay = inst.currentDay = newDate.getDate();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8541 inst.drawMonth = inst.selectedMonth = inst.currentMonth = newDate.getMonth();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8542 inst.drawYear = inst.selectedYear = inst.currentYear = newDate.getFullYear();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8543 if ((origMonth != inst.selectedMonth || origYear != inst.selectedYear) && !noChange)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8544 this._notifyChange(inst);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8545 this._adjustInstDate(inst);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8546 if (inst.input) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8547 inst.input.val(clear ? '' : this._formatDate(inst));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8548 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8549 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8550
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8551 /* Retrieve the date(s) directly. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8552 _getDate: function(inst) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8553 var startDate = (!inst.currentYear || (inst.input && inst.input.val() == '') ? null :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8554 this._daylightSavingAdjust(new Date(
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8555 inst.currentYear, inst.currentMonth, inst.currentDay)));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8556 return startDate;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8557 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8558
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8559 /* Generate the HTML for the current state of the date picker. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8560 _generateHTML: function(inst) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8561 var today = new Date();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8562 today = this._daylightSavingAdjust(
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8563 new Date(today.getFullYear(), today.getMonth(), today.getDate())); // clear time
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8564 var isRTL = this._get(inst, 'isRTL');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8565 var showButtonPanel = this._get(inst, 'showButtonPanel');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8566 var hideIfNoPrevNext = this._get(inst, 'hideIfNoPrevNext');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8567 var navigationAsDateFormat = this._get(inst, 'navigationAsDateFormat');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8568 var numMonths = this._getNumberOfMonths(inst);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8569 var showCurrentAtPos = this._get(inst, 'showCurrentAtPos');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8570 var stepMonths = this._get(inst, 'stepMonths');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8571 var isMultiMonth = (numMonths[0] != 1 || numMonths[1] != 1);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8572 var currentDate = this._daylightSavingAdjust((!inst.currentDay ? new Date(9999, 9, 9) :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8573 new Date(inst.currentYear, inst.currentMonth, inst.currentDay)));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8574 var minDate = this._getMinMaxDate(inst, 'min');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8575 var maxDate = this._getMinMaxDate(inst, 'max');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8576 var drawMonth = inst.drawMonth - showCurrentAtPos;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8577 var drawYear = inst.drawYear;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8578 if (drawMonth < 0) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8579 drawMonth += 12;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8580 drawYear--;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8581 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8582 if (maxDate) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8583 var maxDraw = this._daylightSavingAdjust(new Date(maxDate.getFullYear(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8584 maxDate.getMonth() - (numMonths[0] * numMonths[1]) + 1, maxDate.getDate()));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8585 maxDraw = (minDate && maxDraw < minDate ? minDate : maxDraw);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8586 while (this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1)) > maxDraw) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8587 drawMonth--;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8588 if (drawMonth < 0) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8589 drawMonth = 11;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8590 drawYear--;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8591 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8592 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8593 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8594 inst.drawMonth = drawMonth;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8595 inst.drawYear = drawYear;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8596 var prevText = this._get(inst, 'prevText');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8597 prevText = (!navigationAsDateFormat ? prevText : this.formatDate(prevText,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8598 this._daylightSavingAdjust(new Date(drawYear, drawMonth - stepMonths, 1)),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8599 this._getFormatConfig(inst)));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8600 var prev = (this._canAdjustMonth(inst, -1, drawYear, drawMonth) ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8601 '<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_' + dpuuid +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8602 '.datepicker._adjustDate(\'#' + inst.id + '\', -' + stepMonths + ', \'M\');"' +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8603 ' title="' + prevText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'e' : 'w') + '">' + prevText + '</span></a>' :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8604 (hideIfNoPrevNext ? '' : '<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+ prevText +'"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'e' : 'w') + '">' + prevText + '</span></a>'));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8605 var nextText = this._get(inst, 'nextText');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8606 nextText = (!navigationAsDateFormat ? nextText : this.formatDate(nextText,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8607 this._daylightSavingAdjust(new Date(drawYear, drawMonth + stepMonths, 1)),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8608 this._getFormatConfig(inst)));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8609 var next = (this._canAdjustMonth(inst, +1, drawYear, drawMonth) ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8610 '<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_' + dpuuid +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8611 '.datepicker._adjustDate(\'#' + inst.id + '\', +' + stepMonths + ', \'M\');"' +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8612 ' title="' + nextText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'w' : 'e') + '">' + nextText + '</span></a>' :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8613 (hideIfNoPrevNext ? '' : '<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+ nextText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'w' : 'e') + '">' + nextText + '</span></a>'));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8614 var currentText = this._get(inst, 'currentText');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8615 var gotoDate = (this._get(inst, 'gotoCurrent') && inst.currentDay ? currentDate : today);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8616 currentText = (!navigationAsDateFormat ? currentText :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8617 this.formatDate(currentText, gotoDate, this._getFormatConfig(inst)));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8618 var controls = (!inst.inline ? '<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_' + dpuuid +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8619 '.datepicker._hideDatepicker();">' + this._get(inst, 'closeText') + '</button>' : '');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8620 var buttonPanel = (showButtonPanel) ? '<div class="ui-datepicker-buttonpane ui-widget-content">' + (isRTL ? controls : '') +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8621 (this._isInRange(inst, gotoDate) ? '<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_' + dpuuid +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8622 '.datepicker._gotoToday(\'#' + inst.id + '\');"' +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8623 '>' + currentText + '</button>' : '') + (isRTL ? '' : controls) + '</div>' : '';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8624 var firstDay = parseInt(this._get(inst, 'firstDay'),10);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8625 firstDay = (isNaN(firstDay) ? 0 : firstDay);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8626 var showWeek = this._get(inst, 'showWeek');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8627 var dayNames = this._get(inst, 'dayNames');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8628 var dayNamesShort = this._get(inst, 'dayNamesShort');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8629 var dayNamesMin = this._get(inst, 'dayNamesMin');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8630 var monthNames = this._get(inst, 'monthNames');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8631 var monthNamesShort = this._get(inst, 'monthNamesShort');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8632 var beforeShowDay = this._get(inst, 'beforeShowDay');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8633 var showOtherMonths = this._get(inst, 'showOtherMonths');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8634 var selectOtherMonths = this._get(inst, 'selectOtherMonths');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8635 var calculateWeek = this._get(inst, 'calculateWeek') || this.iso8601Week;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8636 var defaultDate = this._getDefaultDate(inst);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8637 var html = '';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8638 for (var row = 0; row < numMonths[0]; row++) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8639 var group = '';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8640 for (var col = 0; col < numMonths[1]; col++) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8641 var selectedDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, inst.selectedDay));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8642 var cornerClass = ' ui-corner-all';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8643 var calender = '';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8644 if (isMultiMonth) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8645 calender += '<div class="ui-datepicker-group';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8646 if (numMonths[1] > 1)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8647 switch (col) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8648 case 0: calender += ' ui-datepicker-group-first';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8649 cornerClass = ' ui-corner-' + (isRTL ? 'right' : 'left'); break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8650 case numMonths[1]-1: calender += ' ui-datepicker-group-last';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8651 cornerClass = ' ui-corner-' + (isRTL ? 'left' : 'right'); break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8652 default: calender += ' ui-datepicker-group-middle'; cornerClass = ''; break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8653 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8654 calender += '">';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8655 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8656 calender += '<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix' + cornerClass + '">' +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8657 (/all|left/.test(cornerClass) && row == 0 ? (isRTL ? next : prev) : '') +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8658 (/all|right/.test(cornerClass) && row == 0 ? (isRTL ? prev : next) : '') +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8659 this._generateMonthYearHeader(inst, drawMonth, drawYear, minDate, maxDate,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8660 row > 0 || col > 0, monthNames, monthNamesShort) + // draw month headers
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8661 '</div><table class="ui-datepicker-calendar"><thead>' +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8662 '<tr>';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8663 var thead = (showWeek ? '<th class="ui-datepicker-week-col">' + this._get(inst, 'weekHeader') + '</th>' : '');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8664 for (var dow = 0; dow < 7; dow++) { // days of the week
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8665 var day = (dow + firstDay) % 7;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8666 thead += '<th' + ((dow + firstDay + 6) % 7 >= 5 ? ' class="ui-datepicker-week-end"' : '') + '>' +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8667 '<span title="' + dayNames[day] + '">' + dayNamesMin[day] + '</span></th>';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8668 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8669 calender += thead + '</tr></thead><tbody>';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8670 var daysInMonth = this._getDaysInMonth(drawYear, drawMonth);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8671 if (drawYear == inst.selectedYear && drawMonth == inst.selectedMonth)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8672 inst.selectedDay = Math.min(inst.selectedDay, daysInMonth);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8673 var leadDays = (this._getFirstDayOfMonth(drawYear, drawMonth) - firstDay + 7) % 7;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8674 var numRows = (isMultiMonth ? 6 : Math.ceil((leadDays + daysInMonth) / 7)); // calculate the number of rows to generate
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8675 var printDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1 - leadDays));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8676 for (var dRow = 0; dRow < numRows; dRow++) { // create date picker rows
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8677 calender += '<tr>';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8678 var tbody = (!showWeek ? '' : '<td class="ui-datepicker-week-col">' +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8679 this._get(inst, 'calculateWeek')(printDate) + '</td>');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8680 for (var dow = 0; dow < 7; dow++) { // create date picker days
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8681 var daySettings = (beforeShowDay ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8682 beforeShowDay.apply((inst.input ? inst.input[0] : null), [printDate]) : [true, '']);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8683 var otherMonth = (printDate.getMonth() != drawMonth);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8684 var unselectable = (otherMonth && !selectOtherMonths) || !daySettings[0] ||
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8685 (minDate && printDate < minDate) || (maxDate && printDate > maxDate);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8686 tbody += '<td class="' +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8687 ((dow + firstDay + 6) % 7 >= 5 ? ' ui-datepicker-week-end' : '') + // highlight weekends
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8688 (otherMonth ? ' ui-datepicker-other-month' : '') + // highlight days from other months
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8689 ((printDate.getTime() == selectedDate.getTime() && drawMonth == inst.selectedMonth && inst._keyEvent) || // user pressed key
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8690 (defaultDate.getTime() == printDate.getTime() && defaultDate.getTime() == selectedDate.getTime()) ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8691 // or defaultDate is current printedDate and defaultDate is selectedDate
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8692 ' ' + this._dayOverClass : '') + // highlight selected day
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8693 (unselectable ? ' ' + this._unselectableClass + ' ui-state-disabled': '') + // highlight unselectable days
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8694 (otherMonth && !showOtherMonths ? '' : ' ' + daySettings[1] + // highlight custom dates
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8695 (printDate.getTime() == currentDate.getTime() ? ' ' + this._currentClass : '') + // highlight selected day
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8696 (printDate.getTime() == today.getTime() ? ' ui-datepicker-today' : '')) + '"' + // highlight today (if different)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8697 ((!otherMonth || showOtherMonths) && daySettings[2] ? ' title="' + daySettings[2] + '"' : '') + // cell title
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8698 (unselectable ? '' : ' onclick="DP_jQuery_' + dpuuid + '.datepicker._selectDay(\'#' +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8699 inst.id + '\',' + printDate.getMonth() + ',' + printDate.getFullYear() + ', this);return false;"') + '>' + // actions
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8700 (otherMonth && !showOtherMonths ? '&#xa0;' : // display for other months
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8701 (unselectable ? '<span class="ui-state-default">' + printDate.getDate() + '</span>' : '<a class="ui-state-default' +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8702 (printDate.getTime() == today.getTime() ? ' ui-state-highlight' : '') +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8703 (printDate.getTime() == currentDate.getTime() ? ' ui-state-active' : '') + // highlight selected day
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8704 (otherMonth ? ' ui-priority-secondary' : '') + // distinguish dates from other months
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8705 '" href="#">' + printDate.getDate() + '</a>')) + '</td>'; // display selectable date
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8706 printDate.setDate(printDate.getDate() + 1);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8707 printDate = this._daylightSavingAdjust(printDate);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8708 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8709 calender += tbody + '</tr>';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8710 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8711 drawMonth++;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8712 if (drawMonth > 11) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8713 drawMonth = 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8714 drawYear++;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8715 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8716 calender += '</tbody></table>' + (isMultiMonth ? '</div>' +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8717 ((numMonths[0] > 0 && col == numMonths[1]-1) ? '<div class="ui-datepicker-row-break"></div>' : '') : '');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8718 group += calender;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8719 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8720 html += group;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8721 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8722 html += buttonPanel + ($.browser.msie && parseInt($.browser.version,10) < 7 && !inst.inline ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8723 '<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>' : '');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8724 inst._keyEvent = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8725 return html;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8726 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8727
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8728 /* Generate the month and year header. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8729 _generateMonthYearHeader: function(inst, drawMonth, drawYear, minDate, maxDate,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8730 secondary, monthNames, monthNamesShort) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8731 var changeMonth = this._get(inst, 'changeMonth');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8732 var changeYear = this._get(inst, 'changeYear');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8733 var showMonthAfterYear = this._get(inst, 'showMonthAfterYear');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8734 var html = '<div class="ui-datepicker-title">';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8735 var monthHtml = '';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8736 // month selection
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8737 if (secondary || !changeMonth)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8738 monthHtml += '<span class="ui-datepicker-month">' + monthNames[drawMonth] + '</span>';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8739 else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8740 var inMinYear = (minDate && minDate.getFullYear() == drawYear);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8741 var inMaxYear = (maxDate && maxDate.getFullYear() == drawYear);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8742 monthHtml += '<select class="ui-datepicker-month" ' +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8743 'onchange="DP_jQuery_' + dpuuid + '.datepicker._selectMonthYear(\'#' + inst.id + '\', this, \'M\');" ' +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8744 'onclick="DP_jQuery_' + dpuuid + '.datepicker._clickMonthYear(\'#' + inst.id + '\');"' +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8745 '>';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8746 for (var month = 0; month < 12; month++) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8747 if ((!inMinYear || month >= minDate.getMonth()) &&
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8748 (!inMaxYear || month <= maxDate.getMonth()))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8749 monthHtml += '<option value="' + month + '"' +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8750 (month == drawMonth ? ' selected="selected"' : '') +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8751 '>' + monthNamesShort[month] + '</option>';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8752 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8753 monthHtml += '</select>';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8754 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8755 if (!showMonthAfterYear)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8756 html += monthHtml + (secondary || !(changeMonth && changeYear) ? '&#xa0;' : '');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8757 // year selection
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8758 inst.yearshtml = '';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8759 if (secondary || !changeYear)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8760 html += '<span class="ui-datepicker-year">' + drawYear + '</span>';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8761 else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8762 // determine range of years to display
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8763 var years = this._get(inst, 'yearRange').split(':');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8764 var thisYear = new Date().getFullYear();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8765 var determineYear = function(value) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8766 var year = (value.match(/c[+-].*/) ? drawYear + parseInt(value.substring(1), 10) :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8767 (value.match(/[+-].*/) ? thisYear + parseInt(value, 10) :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8768 parseInt(value, 10)));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8769 return (isNaN(year) ? thisYear : year);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8770 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8771 var year = determineYear(years[0]);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8772 var endYear = Math.max(year, determineYear(years[1] || ''));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8773 year = (minDate ? Math.max(year, minDate.getFullYear()) : year);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8774 endYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) : endYear);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8775 inst.yearshtml += '<select class="ui-datepicker-year" ' +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8776 'onchange="DP_jQuery_' + dpuuid + '.datepicker._selectMonthYear(\'#' + inst.id + '\', this, \'Y\');" ' +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8777 'onclick="DP_jQuery_' + dpuuid + '.datepicker._clickMonthYear(\'#' + inst.id + '\');"' +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8778 '>';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8779 for (; year <= endYear; year++) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8780 inst.yearshtml += '<option value="' + year + '"' +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8781 (year == drawYear ? ' selected="selected"' : '') +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8782 '>' + year + '</option>';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8783 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8784 inst.yearshtml += '</select>';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8785 //when showing there is no need for later update
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8786 if( ! $.browser.mozilla ){
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8787 html += inst.yearshtml;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8788 inst.yearshtml = null;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8789 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8790 // will be replaced later with inst.yearshtml
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8791 html += '<select class="ui-datepicker-year"><option value="' + drawYear + '" selected="selected">' + drawYear + '</option></select>';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8792 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8793 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8794 html += this._get(inst, 'yearSuffix');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8795 if (showMonthAfterYear)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8796 html += (secondary || !(changeMonth && changeYear) ? '&#xa0;' : '') + monthHtml;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8797 html += '</div>'; // Close datepicker_header
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8798 return html;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8799 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8800
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8801 /* Adjust one of the date sub-fields. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8802 _adjustInstDate: function(inst, offset, period) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8803 var year = inst.drawYear + (period == 'Y' ? offset : 0);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8804 var month = inst.drawMonth + (period == 'M' ? offset : 0);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8805 var day = Math.min(inst.selectedDay, this._getDaysInMonth(year, month)) +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8806 (period == 'D' ? offset : 0);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8807 var date = this._restrictMinMax(inst,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8808 this._daylightSavingAdjust(new Date(year, month, day)));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8809 inst.selectedDay = date.getDate();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8810 inst.drawMonth = inst.selectedMonth = date.getMonth();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8811 inst.drawYear = inst.selectedYear = date.getFullYear();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8812 if (period == 'M' || period == 'Y')
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8813 this._notifyChange(inst);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8814 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8815
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8816 /* Ensure a date is within any min/max bounds. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8817 _restrictMinMax: function(inst, date) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8818 var minDate = this._getMinMaxDate(inst, 'min');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8819 var maxDate = this._getMinMaxDate(inst, 'max');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8820 var newDate = (minDate && date < minDate ? minDate : date);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8821 newDate = (maxDate && newDate > maxDate ? maxDate : newDate);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8822 return newDate;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8823 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8824
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8825 /* Notify change of month/year. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8826 _notifyChange: function(inst) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8827 var onChange = this._get(inst, 'onChangeMonthYear');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8828 if (onChange)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8829 onChange.apply((inst.input ? inst.input[0] : null),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8830 [inst.selectedYear, inst.selectedMonth + 1, inst]);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8831 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8832
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8833 /* Determine the number of months to show. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8834 _getNumberOfMonths: function(inst) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8835 var numMonths = this._get(inst, 'numberOfMonths');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8836 return (numMonths == null ? [1, 1] : (typeof numMonths == 'number' ? [1, numMonths] : numMonths));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8837 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8838
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8839 /* Determine the current maximum date - ensure no time components are set. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8840 _getMinMaxDate: function(inst, minMax) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8841 return this._determineDate(inst, this._get(inst, minMax + 'Date'), null);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8842 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8843
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8844 /* Find the number of days in a given month. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8845 _getDaysInMonth: function(year, month) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8846 return 32 - new Date(year, month, 32).getDate();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8847 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8848
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8849 /* Find the day of the week of the first of a month. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8850 _getFirstDayOfMonth: function(year, month) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8851 return new Date(year, month, 1).getDay();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8852 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8853
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8854 /* Determines if we should allow a "next/prev" month display change. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8855 _canAdjustMonth: function(inst, offset, curYear, curMonth) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8856 var numMonths = this._getNumberOfMonths(inst);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8857 var date = this._daylightSavingAdjust(new Date(curYear,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8858 curMonth + (offset < 0 ? offset : numMonths[0] * numMonths[1]), 1));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8859 if (offset < 0)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8860 date.setDate(this._getDaysInMonth(date.getFullYear(), date.getMonth()));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8861 return this._isInRange(inst, date);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8862 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8863
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8864 /* Is the given date in the accepted range? */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8865 _isInRange: function(inst, date) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8866 var minDate = this._getMinMaxDate(inst, 'min');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8867 var maxDate = this._getMinMaxDate(inst, 'max');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8868 return ((!minDate || date.getTime() >= minDate.getTime()) &&
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8869 (!maxDate || date.getTime() <= maxDate.getTime()));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8870 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8871
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8872 /* Provide the configuration settings for formatting/parsing. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8873 _getFormatConfig: function(inst) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8874 var shortYearCutoff = this._get(inst, 'shortYearCutoff');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8875 shortYearCutoff = (typeof shortYearCutoff != 'string' ? shortYearCutoff :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8876 new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8877 return {shortYearCutoff: shortYearCutoff,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8878 dayNamesShort: this._get(inst, 'dayNamesShort'), dayNames: this._get(inst, 'dayNames'),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8879 monthNamesShort: this._get(inst, 'monthNamesShort'), monthNames: this._get(inst, 'monthNames')};
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8880 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8881
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8882 /* Format the given date for display. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8883 _formatDate: function(inst, day, month, year) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8884 if (!day) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8885 inst.currentDay = inst.selectedDay;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8886 inst.currentMonth = inst.selectedMonth;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8887 inst.currentYear = inst.selectedYear;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8888 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8889 var date = (day ? (typeof day == 'object' ? day :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8890 this._daylightSavingAdjust(new Date(year, month, day))) :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8891 this._daylightSavingAdjust(new Date(inst.currentYear, inst.currentMonth, inst.currentDay)));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8892 return this.formatDate(this._get(inst, 'dateFormat'), date, this._getFormatConfig(inst));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8893 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8894 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8895
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8896 /* jQuery extend now ignores nulls! */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8897 function extendRemove(target, props) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8898 $.extend(target, props);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8899 for (var name in props)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8900 if (props[name] == null || props[name] == undefined)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8901 target[name] = props[name];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8902 return target;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8903 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8904
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8905 /* Determine whether an object is an array. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8906 function isArray(a) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8907 return (a && (($.browser.safari && typeof a == 'object' && a.length) ||
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8908 (a.constructor && a.constructor.toString().match(/\Array\(\)/))));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8909 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8910
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8911 /* Invoke the datepicker functionality.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8912 @param options string - a command, optionally followed by additional parameters or
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8913 Object - settings for attaching new datepicker functionality
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8914 @return jQuery object */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8915 $.fn.datepicker = function(options){
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8916
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8917 /* Initialise the date picker. */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8918 if (!$.datepicker.initialized) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8919 $(document).mousedown($.datepicker._checkExternalClick).
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8920 find('body').append($.datepicker.dpDiv);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8921 $.datepicker.initialized = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8922 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8923
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8924 var otherArgs = Array.prototype.slice.call(arguments, 1);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8925 if (typeof options == 'string' && (options == 'isDisabled' || options == 'getDate' || options == 'widget'))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8926 return $.datepicker['_' + options + 'Datepicker'].
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8927 apply($.datepicker, [this[0]].concat(otherArgs));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8928 if (options == 'option' && arguments.length == 2 && typeof arguments[1] == 'string')
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8929 return $.datepicker['_' + options + 'Datepicker'].
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8930 apply($.datepicker, [this[0]].concat(otherArgs));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8931 return this.each(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8932 typeof options == 'string' ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8933 $.datepicker['_' + options + 'Datepicker'].
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8934 apply($.datepicker, [this].concat(otherArgs)) :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8935 $.datepicker._attachDatepicker(this, options);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8936 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8937 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8938
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8939 $.datepicker = new Datepicker(); // singleton instance
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8940 $.datepicker.initialized = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8941 $.datepicker.uuid = new Date().getTime();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8942 $.datepicker.version = "1.8.7";
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8943
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8944 // Workaround for #4055
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8945 // Add another global to avoid noConflict issues with inline event handlers
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8946 window['DP_jQuery_' + dpuuid] = $;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8947
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8948 })(jQuery);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8949 /*
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8950 * Note: While Microsoft is not the author of this file, Microsoft is
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8951 * offering you a license subject to the terms of the Microsoft Software
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8952 * License Terms for Microsoft ASP.NET Model View Controller 3.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8953 * Microsoft reserves all other rights. The notices below are provided
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8954 * for informational purposes only and are not the license terms under
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8955 * which Microsoft distributed this file.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8956 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8957 * jQuery UI Dialog 1.8.7
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8958 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8959 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8960 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8961 * http://docs.jquery.com/UI/Dialog
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8962 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8963 * Depends:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8964 * jquery.ui.core.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8965 * jquery.ui.widget.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8966 * jquery.ui.button.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8967 * jquery.ui.draggable.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8968 * jquery.ui.mouse.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8969 * jquery.ui.position.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8970 * jquery.ui.resizable.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8971 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8972 (function( $, undefined ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8973
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8974 var uiDialogClasses =
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8975 'ui-dialog ' +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8976 'ui-widget ' +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8977 'ui-widget-content ' +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8978 'ui-corner-all ',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8979 sizeRelatedOptions = {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8980 buttons: true,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8981 height: true,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8982 maxHeight: true,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8983 maxWidth: true,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8984 minHeight: true,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8985 minWidth: true,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8986 width: true
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8987 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8988 resizableRelatedOptions = {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8989 maxHeight: true,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8990 maxWidth: true,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8991 minHeight: true,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8992 minWidth: true
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8993 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8994
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8995 $.widget("ui.dialog", {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8996 options: {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8997 autoOpen: true,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8998 buttons: {},
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
8999 closeOnEscape: true,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9000 closeText: 'close',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9001 dialogClass: '',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9002 draggable: true,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9003 hide: null,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9004 height: 'auto',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9005 maxHeight: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9006 maxWidth: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9007 minHeight: 150,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9008 minWidth: 150,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9009 modal: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9010 position: {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9011 my: 'center',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9012 at: 'center',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9013 collision: 'fit',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9014 // ensure that the titlebar is never outside the document
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9015 using: function(pos) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9016 var topOffset = $(this).css(pos).offset().top;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9017 if (topOffset < 0) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9018 $(this).css('top', pos.top - topOffset);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9019 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9020 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9021 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9022 resizable: true,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9023 show: null,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9024 stack: true,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9025 title: '',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9026 width: 300,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9027 zIndex: 1000
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9028 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9029
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9030 _create: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9031 this.originalTitle = this.element.attr('title');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9032 // #5742 - .attr() might return a DOMElement
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9033 if ( typeof this.originalTitle !== "string" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9034 this.originalTitle = "";
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9035 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9036
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9037 this.options.title = this.options.title || this.originalTitle;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9038 var self = this,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9039 options = self.options,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9040
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9041 title = options.title || '&#160;',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9042 titleId = $.ui.dialog.getTitleId(self.element),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9043
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9044 uiDialog = (self.uiDialog = $('<div></div>'))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9045 .appendTo(document.body)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9046 .hide()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9047 .addClass(uiDialogClasses + options.dialogClass)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9048 .css({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9049 zIndex: options.zIndex
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9050 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9051 // setting tabIndex makes the div focusable
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9052 // setting outline to 0 prevents a border on focus in Mozilla
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9053 .attr('tabIndex', -1).css('outline', 0).keydown(function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9054 if (options.closeOnEscape && event.keyCode &&
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9055 event.keyCode === $.ui.keyCode.ESCAPE) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9056
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9057 self.close(event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9058 event.preventDefault();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9059 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9060 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9061 .attr({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9062 role: 'dialog',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9063 'aria-labelledby': titleId
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9064 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9065 .mousedown(function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9066 self.moveToTop(false, event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9067 }),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9068
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9069 uiDialogContent = self.element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9070 .show()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9071 .removeAttr('title')
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9072 .addClass(
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9073 'ui-dialog-content ' +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9074 'ui-widget-content')
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9075 .appendTo(uiDialog),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9076
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9077 uiDialogTitlebar = (self.uiDialogTitlebar = $('<div></div>'))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9078 .addClass(
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9079 'ui-dialog-titlebar ' +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9080 'ui-widget-header ' +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9081 'ui-corner-all ' +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9082 'ui-helper-clearfix'
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9083 )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9084 .prependTo(uiDialog),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9085
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9086 uiDialogTitlebarClose = $('<a href="#"></a>')
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9087 .addClass(
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9088 'ui-dialog-titlebar-close ' +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9089 'ui-corner-all'
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9090 )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9091 .attr('role', 'button')
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9092 .hover(
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9093 function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9094 uiDialogTitlebarClose.addClass('ui-state-hover');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9095 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9096 function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9097 uiDialogTitlebarClose.removeClass('ui-state-hover');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9098 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9099 )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9100 .focus(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9101 uiDialogTitlebarClose.addClass('ui-state-focus');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9102 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9103 .blur(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9104 uiDialogTitlebarClose.removeClass('ui-state-focus');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9105 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9106 .click(function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9107 self.close(event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9108 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9109 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9110 .appendTo(uiDialogTitlebar),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9111
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9112 uiDialogTitlebarCloseText = (self.uiDialogTitlebarCloseText = $('<span></span>'))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9113 .addClass(
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9114 'ui-icon ' +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9115 'ui-icon-closethick'
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9116 )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9117 .text(options.closeText)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9118 .appendTo(uiDialogTitlebarClose),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9119
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9120 uiDialogTitle = $('<span></span>')
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9121 .addClass('ui-dialog-title')
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9122 .attr('id', titleId)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9123 .html(title)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9124 .prependTo(uiDialogTitlebar);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9125
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9126 //handling of deprecated beforeclose (vs beforeClose) option
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9127 //Ticket #4669 http://dev.jqueryui.com/ticket/4669
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9128 //TODO: remove in 1.9pre
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9129 if ($.isFunction(options.beforeclose) && !$.isFunction(options.beforeClose)) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9130 options.beforeClose = options.beforeclose;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9131 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9132
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9133 uiDialogTitlebar.find("*").add(uiDialogTitlebar).disableSelection();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9134
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9135 if (options.draggable && $.fn.draggable) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9136 self._makeDraggable();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9137 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9138 if (options.resizable && $.fn.resizable) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9139 self._makeResizable();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9140 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9141
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9142 self._createButtons(options.buttons);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9143 self._isOpen = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9144
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9145 if ($.fn.bgiframe) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9146 uiDialog.bgiframe();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9147 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9148 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9149
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9150 _init: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9151 if ( this.options.autoOpen ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9152 this.open();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9153 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9154 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9155
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9156 destroy: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9157 var self = this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9158
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9159 if (self.overlay) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9160 self.overlay.destroy();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9161 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9162 self.uiDialog.hide();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9163 self.element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9164 .unbind('.dialog')
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9165 .removeData('dialog')
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9166 .removeClass('ui-dialog-content ui-widget-content')
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9167 .hide().appendTo('body');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9168 self.uiDialog.remove();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9169
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9170 if (self.originalTitle) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9171 self.element.attr('title', self.originalTitle);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9172 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9173
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9174 return self;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9175 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9176
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9177 widget: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9178 return this.uiDialog;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9179 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9180
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9181 close: function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9182 var self = this,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9183 maxZ, thisZ;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9184
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9185 if (false === self._trigger('beforeClose', event)) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9186 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9187 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9188
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9189 if (self.overlay) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9190 self.overlay.destroy();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9191 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9192 self.uiDialog.unbind('keypress.ui-dialog');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9193
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9194 self._isOpen = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9195
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9196 if (self.options.hide) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9197 self.uiDialog.hide(self.options.hide, function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9198 self._trigger('close', event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9199 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9200 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9201 self.uiDialog.hide();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9202 self._trigger('close', event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9203 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9204
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9205 $.ui.dialog.overlay.resize();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9206
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9207 // adjust the maxZ to allow other modal dialogs to continue to work (see #4309)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9208 if (self.options.modal) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9209 maxZ = 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9210 $('.ui-dialog').each(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9211 if (this !== self.uiDialog[0]) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9212 thisZ = $(this).css('z-index');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9213 if(!isNaN(thisZ)) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9214 maxZ = Math.max(maxZ, thisZ);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9215 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9216 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9217 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9218 $.ui.dialog.maxZ = maxZ;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9219 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9220
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9221 return self;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9222 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9223
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9224 isOpen: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9225 return this._isOpen;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9226 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9227
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9228 // the force parameter allows us to move modal dialogs to their correct
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9229 // position on open
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9230 moveToTop: function(force, event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9231 var self = this,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9232 options = self.options,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9233 saveScroll;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9234
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9235 if ((options.modal && !force) ||
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9236 (!options.stack && !options.modal)) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9237 return self._trigger('focus', event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9238 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9239
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9240 if (options.zIndex > $.ui.dialog.maxZ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9241 $.ui.dialog.maxZ = options.zIndex;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9242 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9243 if (self.overlay) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9244 $.ui.dialog.maxZ += 1;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9245 self.overlay.$el.css('z-index', $.ui.dialog.overlay.maxZ = $.ui.dialog.maxZ);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9246 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9247
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9248 //Save and then restore scroll since Opera 9.5+ resets when parent z-Index is changed.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9249 // http://ui.jquery.com/bugs/ticket/3193
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9250 saveScroll = { scrollTop: self.element.attr('scrollTop'), scrollLeft: self.element.attr('scrollLeft') };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9251 $.ui.dialog.maxZ += 1;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9252 self.uiDialog.css('z-index', $.ui.dialog.maxZ);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9253 self.element.attr(saveScroll);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9254 self._trigger('focus', event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9255
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9256 return self;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9257 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9258
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9259 open: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9260 if (this._isOpen) { return; }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9261
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9262 var self = this,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9263 options = self.options,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9264 uiDialog = self.uiDialog;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9265
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9266 self.overlay = options.modal ? new $.ui.dialog.overlay(self) : null;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9267 self._size();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9268 self._position(options.position);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9269 uiDialog.show(options.show);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9270 self.moveToTop(true);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9271
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9272 // prevent tabbing out of modal dialogs
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9273 if (options.modal) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9274 uiDialog.bind('keypress.ui-dialog', function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9275 if (event.keyCode !== $.ui.keyCode.TAB) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9276 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9277 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9278
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9279 var tabbables = $(':tabbable', this),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9280 first = tabbables.filter(':first'),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9281 last = tabbables.filter(':last');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9282
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9283 if (event.target === last[0] && !event.shiftKey) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9284 first.focus(1);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9285 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9286 } else if (event.target === first[0] && event.shiftKey) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9287 last.focus(1);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9288 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9289 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9290 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9291 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9292
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9293 // set focus to the first tabbable element in the content area or the first button
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9294 // if there are no tabbable elements, set focus on the dialog itself
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9295 $(self.element.find(':tabbable').get().concat(
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9296 uiDialog.find('.ui-dialog-buttonpane :tabbable').get().concat(
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9297 uiDialog.get()))).eq(0).focus();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9298
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9299 self._isOpen = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9300 self._trigger('open');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9301
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9302 return self;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9303 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9304
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9305 _createButtons: function(buttons) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9306 var self = this,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9307 hasButtons = false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9308 uiDialogButtonPane = $('<div></div>')
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9309 .addClass(
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9310 'ui-dialog-buttonpane ' +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9311 'ui-widget-content ' +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9312 'ui-helper-clearfix'
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9313 ),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9314 uiButtonSet = $( "<div></div>" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9315 .addClass( "ui-dialog-buttonset" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9316 .appendTo( uiDialogButtonPane );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9317
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9318 // if we already have a button pane, remove it
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9319 self.uiDialog.find('.ui-dialog-buttonpane').remove();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9320
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9321 if (typeof buttons === 'object' && buttons !== null) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9322 $.each(buttons, function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9323 return !(hasButtons = true);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9324 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9325 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9326 if (hasButtons) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9327 $.each(buttons, function(name, props) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9328 props = $.isFunction( props ) ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9329 { click: props, text: name } :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9330 props;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9331 var button = $('<button type="button"></button>')
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9332 .attr( props, true )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9333 .unbind('click')
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9334 .click(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9335 props.click.apply(self.element[0], arguments);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9336 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9337 .appendTo(uiButtonSet);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9338 if ($.fn.button) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9339 button.button();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9340 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9341 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9342 uiDialogButtonPane.appendTo(self.uiDialog);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9343 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9344 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9345
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9346 _makeDraggable: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9347 var self = this,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9348 options = self.options,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9349 doc = $(document),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9350 heightBeforeDrag;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9351
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9352 function filteredUi(ui) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9353 return {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9354 position: ui.position,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9355 offset: ui.offset
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9356 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9357 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9358
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9359 self.uiDialog.draggable({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9360 cancel: '.ui-dialog-content, .ui-dialog-titlebar-close',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9361 handle: '.ui-dialog-titlebar',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9362 containment: 'document',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9363 start: function(event, ui) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9364 heightBeforeDrag = options.height === "auto" ? "auto" : $(this).height();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9365 $(this).height($(this).height()).addClass("ui-dialog-dragging");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9366 self._trigger('dragStart', event, filteredUi(ui));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9367 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9368 drag: function(event, ui) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9369 self._trigger('drag', event, filteredUi(ui));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9370 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9371 stop: function(event, ui) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9372 options.position = [ui.position.left - doc.scrollLeft(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9373 ui.position.top - doc.scrollTop()];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9374 $(this).removeClass("ui-dialog-dragging").height(heightBeforeDrag);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9375 self._trigger('dragStop', event, filteredUi(ui));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9376 $.ui.dialog.overlay.resize();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9377 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9378 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9379 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9380
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9381 _makeResizable: function(handles) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9382 handles = (handles === undefined ? this.options.resizable : handles);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9383 var self = this,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9384 options = self.options,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9385 // .ui-resizable has position: relative defined in the stylesheet
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9386 // but dialogs have to use absolute or fixed positioning
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9387 position = self.uiDialog.css('position'),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9388 resizeHandles = (typeof handles === 'string' ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9389 handles :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9390 'n,e,s,w,se,sw,ne,nw'
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9391 );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9392
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9393 function filteredUi(ui) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9394 return {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9395 originalPosition: ui.originalPosition,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9396 originalSize: ui.originalSize,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9397 position: ui.position,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9398 size: ui.size
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9399 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9400 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9401
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9402 self.uiDialog.resizable({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9403 cancel: '.ui-dialog-content',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9404 containment: 'document',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9405 alsoResize: self.element,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9406 maxWidth: options.maxWidth,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9407 maxHeight: options.maxHeight,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9408 minWidth: options.minWidth,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9409 minHeight: self._minHeight(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9410 handles: resizeHandles,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9411 start: function(event, ui) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9412 $(this).addClass("ui-dialog-resizing");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9413 self._trigger('resizeStart', event, filteredUi(ui));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9414 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9415 resize: function(event, ui) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9416 self._trigger('resize', event, filteredUi(ui));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9417 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9418 stop: function(event, ui) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9419 $(this).removeClass("ui-dialog-resizing");
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9420 options.height = $(this).height();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9421 options.width = $(this).width();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9422 self._trigger('resizeStop', event, filteredUi(ui));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9423 $.ui.dialog.overlay.resize();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9424 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9425 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9426 .css('position', position)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9427 .find('.ui-resizable-se').addClass('ui-icon ui-icon-grip-diagonal-se');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9428 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9429
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9430 _minHeight: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9431 var options = this.options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9432
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9433 if (options.height === 'auto') {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9434 return options.minHeight;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9435 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9436 return Math.min(options.minHeight, options.height);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9437 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9438 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9439
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9440 _position: function(position) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9441 var myAt = [],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9442 offset = [0, 0],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9443 isVisible;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9444
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9445 if (position) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9446 // deep extending converts arrays to objects in jQuery <= 1.3.2 :-(
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9447 // if (typeof position == 'string' || $.isArray(position)) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9448 // myAt = $.isArray(position) ? position : position.split(' ');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9449
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9450 if (typeof position === 'string' || (typeof position === 'object' && '0' in position)) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9451 myAt = position.split ? position.split(' ') : [position[0], position[1]];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9452 if (myAt.length === 1) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9453 myAt[1] = myAt[0];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9454 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9455
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9456 $.each(['left', 'top'], function(i, offsetPosition) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9457 if (+myAt[i] === myAt[i]) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9458 offset[i] = myAt[i];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9459 myAt[i] = offsetPosition;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9460 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9461 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9462
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9463 position = {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9464 my: myAt.join(" "),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9465 at: myAt.join(" "),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9466 offset: offset.join(" ")
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9467 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9468 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9469
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9470 position = $.extend({}, $.ui.dialog.prototype.options.position, position);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9471 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9472 position = $.ui.dialog.prototype.options.position;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9473 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9474
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9475 // need to show the dialog to get the actual offset in the position plugin
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9476 isVisible = this.uiDialog.is(':visible');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9477 if (!isVisible) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9478 this.uiDialog.show();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9479 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9480 this.uiDialog
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9481 // workaround for jQuery bug #5781 http://dev.jquery.com/ticket/5781
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9482 .css({ top: 0, left: 0 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9483 .position($.extend({ of: window }, position));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9484 if (!isVisible) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9485 this.uiDialog.hide();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9486 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9487 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9488
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9489 _setOptions: function( options ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9490 var self = this,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9491 resizableOptions = {},
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9492 resize = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9493
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9494 $.each( options, function( key, value ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9495 self._setOption( key, value );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9496
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9497 if ( key in sizeRelatedOptions ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9498 resize = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9499 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9500 if ( key in resizableRelatedOptions ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9501 resizableOptions[ key ] = value;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9502 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9503 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9504
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9505 if ( resize ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9506 this._size();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9507 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9508 if ( this.uiDialog.is( ":data(resizable)" ) ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9509 this.uiDialog.resizable( "option", resizableOptions );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9510 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9511 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9512
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9513 _setOption: function(key, value){
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9514 var self = this,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9515 uiDialog = self.uiDialog;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9516
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9517 switch (key) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9518 //handling of deprecated beforeclose (vs beforeClose) option
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9519 //Ticket #4669 http://dev.jqueryui.com/ticket/4669
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9520 //TODO: remove in 1.9pre
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9521 case "beforeclose":
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9522 key = "beforeClose";
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9523 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9524 case "buttons":
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9525 self._createButtons(value);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9526 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9527 case "closeText":
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9528 // ensure that we always pass a string
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9529 self.uiDialogTitlebarCloseText.text("" + value);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9530 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9531 case "dialogClass":
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9532 uiDialog
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9533 .removeClass(self.options.dialogClass)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9534 .addClass(uiDialogClasses + value);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9535 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9536 case "disabled":
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9537 if (value) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9538 uiDialog.addClass('ui-dialog-disabled');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9539 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9540 uiDialog.removeClass('ui-dialog-disabled');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9541 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9542 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9543 case "draggable":
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9544 var isDraggable = uiDialog.is( ":data(draggable)" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9545 if ( isDraggable && !value ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9546 uiDialog.draggable( "destroy" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9547 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9548
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9549 if ( !isDraggable && value ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9550 self._makeDraggable();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9551 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9552 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9553 case "position":
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9554 self._position(value);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9555 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9556 case "resizable":
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9557 // currently resizable, becoming non-resizable
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9558 var isResizable = uiDialog.is( ":data(resizable)" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9559 if (isResizable && !value) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9560 uiDialog.resizable('destroy');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9561 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9562
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9563 // currently resizable, changing handles
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9564 if (isResizable && typeof value === 'string') {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9565 uiDialog.resizable('option', 'handles', value);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9566 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9567
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9568 // currently non-resizable, becoming resizable
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9569 if (!isResizable && value !== false) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9570 self._makeResizable(value);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9571 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9572 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9573 case "title":
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9574 // convert whatever was passed in o a string, for html() to not throw up
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9575 $(".ui-dialog-title", self.uiDialogTitlebar).html("" + (value || '&#160;'));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9576 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9577 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9578
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9579 $.Widget.prototype._setOption.apply(self, arguments);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9580 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9581
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9582 _size: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9583 /* If the user has resized the dialog, the .ui-dialog and .ui-dialog-content
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9584 * divs will both have width and height set, so we need to reset them
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9585 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9586 var options = this.options,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9587 nonContentHeight,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9588 minContentHeight,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9589 isVisible = this.uiDialog.is( ":visible" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9590
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9591 // reset content sizing
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9592 this.element.show().css({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9593 width: 'auto',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9594 minHeight: 0,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9595 height: 0
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9596 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9597
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9598 if (options.minWidth > options.width) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9599 options.width = options.minWidth;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9600 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9601
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9602 // reset wrapper sizing
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9603 // determine the height of all the non-content elements
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9604 nonContentHeight = this.uiDialog.css({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9605 height: 'auto',
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9606 width: options.width
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9607 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9608 .height();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9609 minContentHeight = Math.max( 0, options.minHeight - nonContentHeight );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9610
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9611 if ( options.height === "auto" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9612 // only needed for IE6 support
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9613 if ( $.support.minHeight ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9614 this.element.css({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9615 minHeight: minContentHeight,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9616 height: "auto"
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9617 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9618 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9619 this.uiDialog.show();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9620 var autoHeight = this.element.css( "height", "auto" ).height();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9621 if ( !isVisible ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9622 this.uiDialog.hide();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9623 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9624 this.element.height( Math.max( autoHeight, minContentHeight ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9625 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9626 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9627 this.element.height( Math.max( options.height - nonContentHeight, 0 ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9628 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9629
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9630 if (this.uiDialog.is(':data(resizable)')) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9631 this.uiDialog.resizable('option', 'minHeight', this._minHeight());
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9632 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9633 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9634 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9635
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9636 $.extend($.ui.dialog, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9637 version: "1.8.7",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9638
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9639 uuid: 0,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9640 maxZ: 0,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9641
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9642 getTitleId: function($el) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9643 var id = $el.attr('id');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9644 if (!id) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9645 this.uuid += 1;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9646 id = this.uuid;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9647 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9648 return 'ui-dialog-title-' + id;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9649 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9650
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9651 overlay: function(dialog) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9652 this.$el = $.ui.dialog.overlay.create(dialog);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9653 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9654 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9655
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9656 $.extend($.ui.dialog.overlay, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9657 instances: [],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9658 // reuse old instances due to IE memory leak with alpha transparency (see #5185)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9659 oldInstances: [],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9660 maxZ: 0,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9661 events: $.map('focus,mousedown,mouseup,keydown,keypress,click'.split(','),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9662 function(event) { return event + '.dialog-overlay'; }).join(' '),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9663 create: function(dialog) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9664 if (this.instances.length === 0) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9665 // prevent use of anchors and inputs
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9666 // we use a setTimeout in case the overlay is created from an
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9667 // event that we're going to be cancelling (see #2804)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9668 setTimeout(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9669 // handle $(el).dialog().dialog('close') (see #4065)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9670 if ($.ui.dialog.overlay.instances.length) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9671 $(document).bind($.ui.dialog.overlay.events, function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9672 // stop events if the z-index of the target is < the z-index of the overlay
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9673 // we cannot return true when we don't want to cancel the event (#3523)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9674 if ($(event.target).zIndex() < $.ui.dialog.overlay.maxZ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9675 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9676 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9677 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9678 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9679 }, 1);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9680
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9681 // allow closing by pressing the escape key
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9682 $(document).bind('keydown.dialog-overlay', function(event) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9683 if (dialog.options.closeOnEscape && event.keyCode &&
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9684 event.keyCode === $.ui.keyCode.ESCAPE) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9685
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9686 dialog.close(event);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9687 event.preventDefault();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9688 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9689 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9690
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9691 // handle window resize
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9692 $(window).bind('resize.dialog-overlay', $.ui.dialog.overlay.resize);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9693 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9694
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9695 var $el = (this.oldInstances.pop() || $('<div></div>').addClass('ui-widget-overlay'))
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9696 .appendTo(document.body)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9697 .css({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9698 width: this.width(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9699 height: this.height()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9700 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9701
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9702 if ($.fn.bgiframe) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9703 $el.bgiframe();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9704 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9705
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9706 this.instances.push($el);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9707 return $el;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9708 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9709
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9710 destroy: function($el) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9711 var indexOf = $.inArray($el, this.instances);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9712 if (indexOf != -1){
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9713 this.oldInstances.push(this.instances.splice(indexOf, 1)[0]);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9714 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9715
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9716 if (this.instances.length === 0) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9717 $([document, window]).unbind('.dialog-overlay');
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9718 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9719
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9720 $el.remove();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9721
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9722 // adjust the maxZ to allow other modal dialogs to continue to work (see #4309)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9723 var maxZ = 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9724 $.each(this.instances, function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9725 maxZ = Math.max(maxZ, this.css('z-index'));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9726 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9727 this.maxZ = maxZ;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9728 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9729
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9730 height: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9731 var scrollHeight,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9732 offsetHeight;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9733 // handle IE 6
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9734 if ($.browser.msie && $.browser.version < 7) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9735 scrollHeight = Math.max(
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9736 document.documentElement.scrollHeight,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9737 document.body.scrollHeight
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9738 );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9739 offsetHeight = Math.max(
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9740 document.documentElement.offsetHeight,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9741 document.body.offsetHeight
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9742 );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9743
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9744 if (scrollHeight < offsetHeight) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9745 return $(window).height() + 'px';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9746 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9747 return scrollHeight + 'px';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9748 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9749 // handle "good" browsers
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9750 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9751 return $(document).height() + 'px';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9752 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9753 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9754
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9755 width: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9756 var scrollWidth,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9757 offsetWidth;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9758 // handle IE 6
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9759 if ($.browser.msie && $.browser.version < 7) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9760 scrollWidth = Math.max(
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9761 document.documentElement.scrollWidth,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9762 document.body.scrollWidth
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9763 );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9764 offsetWidth = Math.max(
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9765 document.documentElement.offsetWidth,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9766 document.body.offsetWidth
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9767 );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9768
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9769 if (scrollWidth < offsetWidth) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9770 return $(window).width() + 'px';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9771 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9772 return scrollWidth + 'px';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9773 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9774 // handle "good" browsers
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9775 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9776 return $(document).width() + 'px';
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9777 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9778 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9779
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9780 resize: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9781 /* If the dialog is draggable and the user drags it past the
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9782 * right edge of the window, the document becomes wider so we
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9783 * need to stretch the overlay. If the user then drags the
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9784 * dialog back to the left, the document will become narrower,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9785 * so we need to shrink the overlay to the appropriate size.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9786 * This is handled by shrinking the overlay before setting it
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9787 * to the full document size.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9788 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9789 var $overlays = $([]);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9790 $.each($.ui.dialog.overlay.instances, function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9791 $overlays = $overlays.add(this);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9792 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9793
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9794 $overlays.css({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9795 width: 0,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9796 height: 0
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9797 }).css({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9798 width: $.ui.dialog.overlay.width(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9799 height: $.ui.dialog.overlay.height()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9800 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9801 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9802 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9803
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9804 $.extend($.ui.dialog.overlay.prototype, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9805 destroy: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9806 $.ui.dialog.overlay.destroy(this.$el);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9807 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9808 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9809
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9810 }(jQuery));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9811 /*
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9812 * Note: While Microsoft is not the author of this file, Microsoft is
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9813 * offering you a license subject to the terms of the Microsoft Software
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9814 * License Terms for Microsoft ASP.NET Model View Controller 3.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9815 * Microsoft reserves all other rights. The notices below are provided
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9816 * for informational purposes only and are not the license terms under
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9817 * which Microsoft distributed this file.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9818 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9819 * jQuery UI Position 1.8.7
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9820 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9821 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9822 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9823 * http://docs.jquery.com/UI/Position
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9824 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9825 (function( $, undefined ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9826
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9827 $.ui = $.ui || {};
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9828
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9829 var horizontalPositions = /left|center|right/,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9830 verticalPositions = /top|center|bottom/,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9831 center = "center",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9832 _position = $.fn.position,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9833 _offset = $.fn.offset;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9834
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9835 $.fn.position = function( options ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9836 if ( !options || !options.of ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9837 return _position.apply( this, arguments );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9838 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9839
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9840 // make a copy, we don't want to modify arguments
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9841 options = $.extend( {}, options );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9842
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9843 var target = $( options.of ),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9844 targetElem = target[0],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9845 collision = ( options.collision || "flip" ).split( " " ),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9846 offset = options.offset ? options.offset.split( " " ) : [ 0, 0 ],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9847 targetWidth,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9848 targetHeight,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9849 basePosition;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9850
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9851 if ( targetElem.nodeType === 9 ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9852 targetWidth = target.width();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9853 targetHeight = target.height();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9854 basePosition = { top: 0, left: 0 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9855 // TODO: use $.isWindow() in 1.9
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9856 } else if ( targetElem.setTimeout ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9857 targetWidth = target.width();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9858 targetHeight = target.height();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9859 basePosition = { top: target.scrollTop(), left: target.scrollLeft() };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9860 } else if ( targetElem.preventDefault ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9861 // force left top to allow flipping
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9862 options.at = "left top";
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9863 targetWidth = targetHeight = 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9864 basePosition = { top: options.of.pageY, left: options.of.pageX };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9865 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9866 targetWidth = target.outerWidth();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9867 targetHeight = target.outerHeight();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9868 basePosition = target.offset();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9869 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9870
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9871 // force my and at to have valid horizontal and veritcal positions
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9872 // if a value is missing or invalid, it will be converted to center
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9873 $.each( [ "my", "at" ], function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9874 var pos = ( options[this] || "" ).split( " " );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9875 if ( pos.length === 1) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9876 pos = horizontalPositions.test( pos[0] ) ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9877 pos.concat( [center] ) :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9878 verticalPositions.test( pos[0] ) ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9879 [ center ].concat( pos ) :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9880 [ center, center ];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9881 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9882 pos[ 0 ] = horizontalPositions.test( pos[0] ) ? pos[ 0 ] : center;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9883 pos[ 1 ] = verticalPositions.test( pos[1] ) ? pos[ 1 ] : center;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9884 options[ this ] = pos;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9885 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9886
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9887 // normalize collision option
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9888 if ( collision.length === 1 ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9889 collision[ 1 ] = collision[ 0 ];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9890 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9891
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9892 // normalize offset option
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9893 offset[ 0 ] = parseInt( offset[0], 10 ) || 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9894 if ( offset.length === 1 ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9895 offset[ 1 ] = offset[ 0 ];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9896 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9897 offset[ 1 ] = parseInt( offset[1], 10 ) || 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9898
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9899 if ( options.at[0] === "right" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9900 basePosition.left += targetWidth;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9901 } else if (options.at[0] === center ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9902 basePosition.left += targetWidth / 2;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9903 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9904
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9905 if ( options.at[1] === "bottom" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9906 basePosition.top += targetHeight;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9907 } else if ( options.at[1] === center ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9908 basePosition.top += targetHeight / 2;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9909 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9910
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9911 basePosition.left += offset[ 0 ];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9912 basePosition.top += offset[ 1 ];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9913
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9914 return this.each(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9915 var elem = $( this ),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9916 elemWidth = elem.outerWidth(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9917 elemHeight = elem.outerHeight(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9918 marginLeft = parseInt( $.curCSS( this, "marginLeft", true ) ) || 0,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9919 marginTop = parseInt( $.curCSS( this, "marginTop", true ) ) || 0,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9920 collisionWidth = elemWidth + marginLeft +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9921 parseInt( $.curCSS( this, "marginRight", true ) ) || 0,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9922 collisionHeight = elemHeight + marginTop +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9923 parseInt( $.curCSS( this, "marginBottom", true ) ) || 0,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9924 position = $.extend( {}, basePosition ),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9925 collisionPosition;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9926
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9927 if ( options.my[0] === "right" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9928 position.left -= elemWidth;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9929 } else if ( options.my[0] === center ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9930 position.left -= elemWidth / 2;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9931 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9932
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9933 if ( options.my[1] === "bottom" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9934 position.top -= elemHeight;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9935 } else if ( options.my[1] === center ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9936 position.top -= elemHeight / 2;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9937 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9938
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9939 // prevent fractions (see #5280)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9940 position.left = Math.round( position.left );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9941 position.top = Math.round( position.top );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9942
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9943 collisionPosition = {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9944 left: position.left - marginLeft,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9945 top: position.top - marginTop
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9946 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9947
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9948 $.each( [ "left", "top" ], function( i, dir ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9949 if ( $.ui.position[ collision[i] ] ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9950 $.ui.position[ collision[i] ][ dir ]( position, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9951 targetWidth: targetWidth,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9952 targetHeight: targetHeight,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9953 elemWidth: elemWidth,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9954 elemHeight: elemHeight,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9955 collisionPosition: collisionPosition,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9956 collisionWidth: collisionWidth,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9957 collisionHeight: collisionHeight,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9958 offset: offset,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9959 my: options.my,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9960 at: options.at
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9961 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9962 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9963 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9964
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9965 if ( $.fn.bgiframe ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9966 elem.bgiframe();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9967 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9968 elem.offset( $.extend( position, { using: options.using } ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9969 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9970 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9971
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9972 $.ui.position = {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9973 fit: {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9974 left: function( position, data ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9975 var win = $( window ),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9976 over = data.collisionPosition.left + data.collisionWidth - win.width() - win.scrollLeft();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9977 position.left = over > 0 ? position.left - over : Math.max( position.left - data.collisionPosition.left, position.left );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9978 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9979 top: function( position, data ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9980 var win = $( window ),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9981 over = data.collisionPosition.top + data.collisionHeight - win.height() - win.scrollTop();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9982 position.top = over > 0 ? position.top - over : Math.max( position.top - data.collisionPosition.top, position.top );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9983 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9984 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9985
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9986 flip: {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9987 left: function( position, data ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9988 if ( data.at[0] === center ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9989 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9990 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9991 var win = $( window ),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9992 over = data.collisionPosition.left + data.collisionWidth - win.width() - win.scrollLeft(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9993 myOffset = data.my[ 0 ] === "left" ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9994 -data.elemWidth :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9995 data.my[ 0 ] === "right" ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9996 data.elemWidth :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9997 0,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9998 atOffset = data.at[ 0 ] === "left" ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
9999 data.targetWidth :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10000 -data.targetWidth,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10001 offset = -2 * data.offset[ 0 ];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10002 position.left += data.collisionPosition.left < 0 ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10003 myOffset + atOffset + offset :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10004 over > 0 ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10005 myOffset + atOffset + offset :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10006 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10007 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10008 top: function( position, data ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10009 if ( data.at[1] === center ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10010 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10011 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10012 var win = $( window ),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10013 over = data.collisionPosition.top + data.collisionHeight - win.height() - win.scrollTop(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10014 myOffset = data.my[ 1 ] === "top" ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10015 -data.elemHeight :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10016 data.my[ 1 ] === "bottom" ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10017 data.elemHeight :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10018 0,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10019 atOffset = data.at[ 1 ] === "top" ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10020 data.targetHeight :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10021 -data.targetHeight,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10022 offset = -2 * data.offset[ 1 ];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10023 position.top += data.collisionPosition.top < 0 ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10024 myOffset + atOffset + offset :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10025 over > 0 ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10026 myOffset + atOffset + offset :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10027 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10028 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10029 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10030 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10031
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10032 // offset setter from jQuery 1.4
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10033 if ( !$.offset.setOffset ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10034 $.offset.setOffset = function( elem, options ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10035 // set position first, in-case top/left are set even on static elem
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10036 if ( /static/.test( $.curCSS( elem, "position" ) ) ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10037 elem.style.position = "relative";
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10038 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10039 var curElem = $( elem ),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10040 curOffset = curElem.offset(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10041 curTop = parseInt( $.curCSS( elem, "top", true ), 10 ) || 0,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10042 curLeft = parseInt( $.curCSS( elem, "left", true ), 10) || 0,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10043 props = {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10044 top: (options.top - curOffset.top) + curTop,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10045 left: (options.left - curOffset.left) + curLeft
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10046 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10047
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10048 if ( 'using' in options ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10049 options.using.call( elem, props );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10050 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10051 curElem.css( props );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10052 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10053 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10054
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10055 $.fn.offset = function( options ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10056 var elem = this[ 0 ];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10057 if ( !elem || !elem.ownerDocument ) { return null; }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10058 if ( options ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10059 return this.each(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10060 $.offset.setOffset( this, options );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10061 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10062 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10063 return _offset.call( this );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10064 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10065 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10066
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10067 }( jQuery ));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10068 /*
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10069 * Note: While Microsoft is not the author of this file, Microsoft is
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10070 * offering you a license subject to the terms of the Microsoft Software
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10071 * License Terms for Microsoft ASP.NET Model View Controller 3.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10072 * Microsoft reserves all other rights. The notices below are provided
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10073 * for informational purposes only and are not the license terms under
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10074 * which Microsoft distributed this file.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10075 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10076 * jQuery UI Progressbar 1.8.7
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10077 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10078 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10079 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10080 * http://docs.jquery.com/UI/Progressbar
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10081 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10082 * Depends:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10083 * jquery.ui.core.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10084 * jquery.ui.widget.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10085 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10086 (function( $, undefined ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10087
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10088 $.widget( "ui.progressbar", {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10089 options: {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10090 value: 0,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10091 max: 100
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10092 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10093
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10094 min: 0,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10095
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10096 _create: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10097 this.element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10098 .addClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10099 .attr({
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10100 role: "progressbar",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10101 "aria-valuemin": this.min,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10102 "aria-valuemax": this.options.max,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10103 "aria-valuenow": this._value()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10104 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10105
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10106 this.valueDiv = $( "<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10107 .appendTo( this.element );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10108
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10109 this.oldValue = this._value();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10110 this._refreshValue();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10111 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10112
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10113 destroy: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10114 this.element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10115 .removeClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10116 .removeAttr( "role" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10117 .removeAttr( "aria-valuemin" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10118 .removeAttr( "aria-valuemax" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10119 .removeAttr( "aria-valuenow" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10120
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10121 this.valueDiv.remove();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10122
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10123 $.Widget.prototype.destroy.apply( this, arguments );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10124 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10125
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10126 value: function( newValue ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10127 if ( newValue === undefined ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10128 return this._value();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10129 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10130
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10131 this._setOption( "value", newValue );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10132 return this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10133 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10134
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10135 _setOption: function( key, value ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10136 if ( key === "value" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10137 this.options.value = value;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10138 this._refreshValue();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10139 if ( this._value() === this.options.max ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10140 this._trigger( "complete" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10141 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10142 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10143
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10144 $.Widget.prototype._setOption.apply( this, arguments );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10145 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10146
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10147 _value: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10148 var val = this.options.value;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10149 // normalize invalid value
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10150 if ( typeof val !== "number" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10151 val = 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10152 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10153 return Math.min( this.options.max, Math.max( this.min, val ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10154 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10155
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10156 _percentage: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10157 return 100 * this._value() / this.options.max;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10158 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10159
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10160 _refreshValue: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10161 var value = this.value();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10162 var percentage = this._percentage();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10163
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10164 if ( this.oldValue !== value ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10165 this.oldValue = value;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10166 this._trigger( "change" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10167 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10168
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10169 this.valueDiv
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10170 .toggleClass( "ui-corner-right", value === this.options.max )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10171 .width( percentage.toFixed(0) + "%" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10172 this.element.attr( "aria-valuenow", value );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10173 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10174 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10175
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10176 $.extend( $.ui.progressbar, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10177 version: "1.8.7"
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10178 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10179
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10180 })( jQuery );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10181 /*
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10182 * Note: While Microsoft is not the author of this file, Microsoft is
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10183 * offering you a license subject to the terms of the Microsoft Software
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10184 * License Terms for Microsoft ASP.NET Model View Controller 3.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10185 * Microsoft reserves all other rights. The notices below are provided
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10186 * for informational purposes only and are not the license terms under
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10187 * which Microsoft distributed this file.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10188 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10189 * jQuery UI Slider 1.8.7
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10190 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10191 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10192 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10193 * http://docs.jquery.com/UI/Slider
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10194 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10195 * Depends:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10196 * jquery.ui.core.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10197 * jquery.ui.mouse.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10198 * jquery.ui.widget.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10199 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10200 (function( $, undefined ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10201
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10202 // number of pages in a slider
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10203 // (how many times can you page up/down to go through the whole range)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10204 var numPages = 5;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10205
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10206 $.widget( "ui.slider", $.ui.mouse, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10207
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10208 widgetEventPrefix: "slide",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10209
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10210 options: {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10211 animate: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10212 distance: 0,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10213 max: 100,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10214 min: 0,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10215 orientation: "horizontal",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10216 range: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10217 step: 1,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10218 value: 0,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10219 values: null
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10220 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10221
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10222 _create: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10223 var self = this,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10224 o = this.options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10225
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10226 this._keySliding = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10227 this._mouseSliding = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10228 this._animateOff = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10229 this._handleIndex = null;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10230 this._detectOrientation();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10231 this._mouseInit();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10232
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10233 this.element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10234 .addClass( "ui-slider" +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10235 " ui-slider-" + this.orientation +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10236 " ui-widget" +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10237 " ui-widget-content" +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10238 " ui-corner-all" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10239
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10240 if ( o.disabled ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10241 this.element.addClass( "ui-slider-disabled ui-disabled" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10242 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10243
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10244 this.range = $([]);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10245
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10246 if ( o.range ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10247 if ( o.range === true ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10248 this.range = $( "<div></div>" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10249 if ( !o.values ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10250 o.values = [ this._valueMin(), this._valueMin() ];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10251 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10252 if ( o.values.length && o.values.length !== 2 ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10253 o.values = [ o.values[0], o.values[0] ];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10254 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10255 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10256 this.range = $( "<div></div>" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10257 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10258
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10259 this.range
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10260 .appendTo( this.element )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10261 .addClass( "ui-slider-range" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10262
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10263 if ( o.range === "min" || o.range === "max" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10264 this.range.addClass( "ui-slider-range-" + o.range );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10265 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10266
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10267 // note: this isn't the most fittingly semantic framework class for this element,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10268 // but worked best visually with a variety of themes
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10269 this.range.addClass( "ui-widget-header" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10270 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10271
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10272 if ( $( ".ui-slider-handle", this.element ).length === 0 ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10273 $( "<a href='#'></a>" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10274 .appendTo( this.element )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10275 .addClass( "ui-slider-handle" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10276 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10277
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10278 if ( o.values && o.values.length ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10279 while ( $(".ui-slider-handle", this.element).length < o.values.length ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10280 $( "<a href='#'></a>" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10281 .appendTo( this.element )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10282 .addClass( "ui-slider-handle" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10283 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10284 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10285
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10286 this.handles = $( ".ui-slider-handle", this.element )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10287 .addClass( "ui-state-default" +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10288 " ui-corner-all" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10289
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10290 this.handle = this.handles.eq( 0 );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10291
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10292 this.handles.add( this.range ).filter( "a" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10293 .click(function( event ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10294 event.preventDefault();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10295 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10296 .hover(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10297 if ( !o.disabled ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10298 $( this ).addClass( "ui-state-hover" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10299 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10300 }, function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10301 $( this ).removeClass( "ui-state-hover" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10302 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10303 .focus(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10304 if ( !o.disabled ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10305 $( ".ui-slider .ui-state-focus" ).removeClass( "ui-state-focus" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10306 $( this ).addClass( "ui-state-focus" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10307 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10308 $( this ).blur();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10309 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10310 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10311 .blur(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10312 $( this ).removeClass( "ui-state-focus" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10313 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10314
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10315 this.handles.each(function( i ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10316 $( this ).data( "index.ui-slider-handle", i );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10317 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10318
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10319 this.handles
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10320 .keydown(function( event ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10321 var ret = true,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10322 index = $( this ).data( "index.ui-slider-handle" ),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10323 allowed,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10324 curVal,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10325 newVal,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10326 step;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10327
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10328 if ( self.options.disabled ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10329 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10330 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10331
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10332 switch ( event.keyCode ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10333 case $.ui.keyCode.HOME:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10334 case $.ui.keyCode.END:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10335 case $.ui.keyCode.PAGE_UP:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10336 case $.ui.keyCode.PAGE_DOWN:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10337 case $.ui.keyCode.UP:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10338 case $.ui.keyCode.RIGHT:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10339 case $.ui.keyCode.DOWN:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10340 case $.ui.keyCode.LEFT:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10341 ret = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10342 if ( !self._keySliding ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10343 self._keySliding = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10344 $( this ).addClass( "ui-state-active" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10345 allowed = self._start( event, index );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10346 if ( allowed === false ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10347 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10348 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10349 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10350 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10351 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10352
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10353 step = self.options.step;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10354 if ( self.options.values && self.options.values.length ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10355 curVal = newVal = self.values( index );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10356 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10357 curVal = newVal = self.value();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10358 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10359
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10360 switch ( event.keyCode ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10361 case $.ui.keyCode.HOME:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10362 newVal = self._valueMin();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10363 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10364 case $.ui.keyCode.END:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10365 newVal = self._valueMax();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10366 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10367 case $.ui.keyCode.PAGE_UP:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10368 newVal = self._trimAlignValue( curVal + ( (self._valueMax() - self._valueMin()) / numPages ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10369 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10370 case $.ui.keyCode.PAGE_DOWN:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10371 newVal = self._trimAlignValue( curVal - ( (self._valueMax() - self._valueMin()) / numPages ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10372 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10373 case $.ui.keyCode.UP:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10374 case $.ui.keyCode.RIGHT:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10375 if ( curVal === self._valueMax() ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10376 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10377 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10378 newVal = self._trimAlignValue( curVal + step );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10379 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10380 case $.ui.keyCode.DOWN:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10381 case $.ui.keyCode.LEFT:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10382 if ( curVal === self._valueMin() ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10383 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10384 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10385 newVal = self._trimAlignValue( curVal - step );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10386 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10387 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10388
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10389 self._slide( event, index, newVal );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10390
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10391 return ret;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10392
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10393 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10394 .keyup(function( event ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10395 var index = $( this ).data( "index.ui-slider-handle" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10396
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10397 if ( self._keySliding ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10398 self._keySliding = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10399 self._stop( event, index );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10400 self._change( event, index );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10401 $( this ).removeClass( "ui-state-active" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10402 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10403
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10404 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10405
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10406 this._refreshValue();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10407
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10408 this._animateOff = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10409 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10410
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10411 destroy: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10412 this.handles.remove();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10413 this.range.remove();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10414
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10415 this.element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10416 .removeClass( "ui-slider" +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10417 " ui-slider-horizontal" +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10418 " ui-slider-vertical" +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10419 " ui-slider-disabled" +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10420 " ui-widget" +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10421 " ui-widget-content" +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10422 " ui-corner-all" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10423 .removeData( "slider" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10424 .unbind( ".slider" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10425
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10426 this._mouseDestroy();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10427
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10428 return this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10429 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10430
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10431 _mouseCapture: function( event ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10432 var o = this.options,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10433 position,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10434 normValue,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10435 distance,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10436 closestHandle,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10437 self,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10438 index,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10439 allowed,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10440 offset,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10441 mouseOverHandle;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10442
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10443 if ( o.disabled ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10444 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10445 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10446
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10447 this.elementSize = {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10448 width: this.element.outerWidth(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10449 height: this.element.outerHeight()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10450 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10451 this.elementOffset = this.element.offset();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10452
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10453 position = { x: event.pageX, y: event.pageY };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10454 normValue = this._normValueFromMouse( position );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10455 distance = this._valueMax() - this._valueMin() + 1;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10456 self = this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10457 this.handles.each(function( i ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10458 var thisDistance = Math.abs( normValue - self.values(i) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10459 if ( distance > thisDistance ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10460 distance = thisDistance;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10461 closestHandle = $( this );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10462 index = i;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10463 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10464 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10465
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10466 // workaround for bug #3736 (if both handles of a range are at 0,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10467 // the first is always used as the one with least distance,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10468 // and moving it is obviously prevented by preventing negative ranges)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10469 if( o.range === true && this.values(1) === o.min ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10470 index += 1;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10471 closestHandle = $( this.handles[index] );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10472 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10473
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10474 allowed = this._start( event, index );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10475 if ( allowed === false ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10476 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10477 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10478 this._mouseSliding = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10479
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10480 self._handleIndex = index;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10481
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10482 closestHandle
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10483 .addClass( "ui-state-active" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10484 .focus();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10485
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10486 offset = closestHandle.offset();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10487 mouseOverHandle = !$( event.target ).parents().andSelf().is( ".ui-slider-handle" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10488 this._clickOffset = mouseOverHandle ? { left: 0, top: 0 } : {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10489 left: event.pageX - offset.left - ( closestHandle.width() / 2 ),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10490 top: event.pageY - offset.top -
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10491 ( closestHandle.height() / 2 ) -
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10492 ( parseInt( closestHandle.css("borderTopWidth"), 10 ) || 0 ) -
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10493 ( parseInt( closestHandle.css("borderBottomWidth"), 10 ) || 0) +
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10494 ( parseInt( closestHandle.css("marginTop"), 10 ) || 0)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10495 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10496
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10497 if ( !this.handles.hasClass( "ui-state-hover" ) ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10498 this._slide( event, index, normValue );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10499 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10500 this._animateOff = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10501 return true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10502 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10503
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10504 _mouseStart: function( event ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10505 return true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10506 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10507
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10508 _mouseDrag: function( event ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10509 var position = { x: event.pageX, y: event.pageY },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10510 normValue = this._normValueFromMouse( position );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10511
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10512 this._slide( event, this._handleIndex, normValue );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10513
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10514 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10515 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10516
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10517 _mouseStop: function( event ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10518 this.handles.removeClass( "ui-state-active" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10519 this._mouseSliding = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10520
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10521 this._stop( event, this._handleIndex );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10522 this._change( event, this._handleIndex );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10523
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10524 this._handleIndex = null;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10525 this._clickOffset = null;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10526 this._animateOff = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10527
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10528 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10529 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10530
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10531 _detectOrientation: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10532 this.orientation = ( this.options.orientation === "vertical" ) ? "vertical" : "horizontal";
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10533 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10534
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10535 _normValueFromMouse: function( position ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10536 var pixelTotal,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10537 pixelMouse,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10538 percentMouse,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10539 valueTotal,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10540 valueMouse;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10541
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10542 if ( this.orientation === "horizontal" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10543 pixelTotal = this.elementSize.width;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10544 pixelMouse = position.x - this.elementOffset.left - ( this._clickOffset ? this._clickOffset.left : 0 );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10545 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10546 pixelTotal = this.elementSize.height;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10547 pixelMouse = position.y - this.elementOffset.top - ( this._clickOffset ? this._clickOffset.top : 0 );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10548 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10549
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10550 percentMouse = ( pixelMouse / pixelTotal );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10551 if ( percentMouse > 1 ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10552 percentMouse = 1;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10553 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10554 if ( percentMouse < 0 ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10555 percentMouse = 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10556 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10557 if ( this.orientation === "vertical" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10558 percentMouse = 1 - percentMouse;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10559 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10560
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10561 valueTotal = this._valueMax() - this._valueMin();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10562 valueMouse = this._valueMin() + percentMouse * valueTotal;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10563
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10564 return this._trimAlignValue( valueMouse );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10565 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10566
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10567 _start: function( event, index ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10568 var uiHash = {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10569 handle: this.handles[ index ],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10570 value: this.value()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10571 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10572 if ( this.options.values && this.options.values.length ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10573 uiHash.value = this.values( index );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10574 uiHash.values = this.values();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10575 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10576 return this._trigger( "start", event, uiHash );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10577 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10578
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10579 _slide: function( event, index, newVal ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10580 var otherVal,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10581 newValues,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10582 allowed;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10583
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10584 if ( this.options.values && this.options.values.length ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10585 otherVal = this.values( index ? 0 : 1 );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10586
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10587 if ( ( this.options.values.length === 2 && this.options.range === true ) &&
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10588 ( ( index === 0 && newVal > otherVal) || ( index === 1 && newVal < otherVal ) )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10589 ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10590 newVal = otherVal;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10591 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10592
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10593 if ( newVal !== this.values( index ) ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10594 newValues = this.values();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10595 newValues[ index ] = newVal;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10596 // A slide can be canceled by returning false from the slide callback
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10597 allowed = this._trigger( "slide", event, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10598 handle: this.handles[ index ],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10599 value: newVal,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10600 values: newValues
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10601 } );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10602 otherVal = this.values( index ? 0 : 1 );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10603 if ( allowed !== false ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10604 this.values( index, newVal, true );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10605 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10606 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10607 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10608 if ( newVal !== this.value() ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10609 // A slide can be canceled by returning false from the slide callback
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10610 allowed = this._trigger( "slide", event, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10611 handle: this.handles[ index ],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10612 value: newVal
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10613 } );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10614 if ( allowed !== false ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10615 this.value( newVal );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10616 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10617 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10618 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10619 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10620
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10621 _stop: function( event, index ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10622 var uiHash = {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10623 handle: this.handles[ index ],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10624 value: this.value()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10625 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10626 if ( this.options.values && this.options.values.length ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10627 uiHash.value = this.values( index );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10628 uiHash.values = this.values();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10629 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10630
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10631 this._trigger( "stop", event, uiHash );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10632 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10633
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10634 _change: function( event, index ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10635 if ( !this._keySliding && !this._mouseSliding ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10636 var uiHash = {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10637 handle: this.handles[ index ],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10638 value: this.value()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10639 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10640 if ( this.options.values && this.options.values.length ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10641 uiHash.value = this.values( index );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10642 uiHash.values = this.values();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10643 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10644
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10645 this._trigger( "change", event, uiHash );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10646 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10647 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10648
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10649 value: function( newValue ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10650 if ( arguments.length ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10651 this.options.value = this._trimAlignValue( newValue );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10652 this._refreshValue();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10653 this._change( null, 0 );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10654 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10655
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10656 return this._value();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10657 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10658
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10659 values: function( index, newValue ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10660 var vals,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10661 newValues,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10662 i;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10663
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10664 if ( arguments.length > 1 ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10665 this.options.values[ index ] = this._trimAlignValue( newValue );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10666 this._refreshValue();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10667 this._change( null, index );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10668 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10669
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10670 if ( arguments.length ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10671 if ( $.isArray( arguments[ 0 ] ) ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10672 vals = this.options.values;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10673 newValues = arguments[ 0 ];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10674 for ( i = 0; i < vals.length; i += 1 ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10675 vals[ i ] = this._trimAlignValue( newValues[ i ] );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10676 this._change( null, i );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10677 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10678 this._refreshValue();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10679 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10680 if ( this.options.values && this.options.values.length ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10681 return this._values( index );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10682 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10683 return this.value();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10684 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10685 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10686 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10687 return this._values();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10688 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10689 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10690
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10691 _setOption: function( key, value ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10692 var i,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10693 valsLength = 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10694
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10695 if ( $.isArray( this.options.values ) ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10696 valsLength = this.options.values.length;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10697 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10698
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10699 $.Widget.prototype._setOption.apply( this, arguments );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10700
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10701 switch ( key ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10702 case "disabled":
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10703 if ( value ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10704 this.handles.filter( ".ui-state-focus" ).blur();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10705 this.handles.removeClass( "ui-state-hover" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10706 this.handles.attr( "disabled", "disabled" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10707 this.element.addClass( "ui-disabled" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10708 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10709 this.handles.removeAttr( "disabled" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10710 this.element.removeClass( "ui-disabled" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10711 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10712 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10713 case "orientation":
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10714 this._detectOrientation();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10715 this.element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10716 .removeClass( "ui-slider-horizontal ui-slider-vertical" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10717 .addClass( "ui-slider-" + this.orientation );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10718 this._refreshValue();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10719 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10720 case "value":
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10721 this._animateOff = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10722 this._refreshValue();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10723 this._change( null, 0 );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10724 this._animateOff = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10725 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10726 case "values":
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10727 this._animateOff = true;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10728 this._refreshValue();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10729 for ( i = 0; i < valsLength; i += 1 ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10730 this._change( null, i );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10731 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10732 this._animateOff = false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10733 break;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10734 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10735 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10736
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10737 //internal value getter
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10738 // _value() returns value trimmed by min and max, aligned by step
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10739 _value: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10740 var val = this.options.value;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10741 val = this._trimAlignValue( val );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10742
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10743 return val;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10744 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10745
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10746 //internal values getter
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10747 // _values() returns array of values trimmed by min and max, aligned by step
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10748 // _values( index ) returns single value trimmed by min and max, aligned by step
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10749 _values: function( index ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10750 var val,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10751 vals,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10752 i;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10753
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10754 if ( arguments.length ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10755 val = this.options.values[ index ];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10756 val = this._trimAlignValue( val );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10757
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10758 return val;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10759 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10760 // .slice() creates a copy of the array
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10761 // this copy gets trimmed by min and max and then returned
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10762 vals = this.options.values.slice();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10763 for ( i = 0; i < vals.length; i+= 1) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10764 vals[ i ] = this._trimAlignValue( vals[ i ] );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10765 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10766
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10767 return vals;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10768 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10769 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10770
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10771 // returns the step-aligned value that val is closest to, between (inclusive) min and max
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10772 _trimAlignValue: function( val ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10773 if ( val <= this._valueMin() ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10774 return this._valueMin();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10775 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10776 if ( val >= this._valueMax() ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10777 return this._valueMax();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10778 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10779 var step = ( this.options.step > 0 ) ? this.options.step : 1,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10780 valModStep = (val - this._valueMin()) % step;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10781 alignValue = val - valModStep;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10782
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10783 if ( Math.abs(valModStep) * 2 >= step ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10784 alignValue += ( valModStep > 0 ) ? step : ( -step );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10785 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10786
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10787 // Since JavaScript has problems with large floats, round
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10788 // the final value to 5 digits after the decimal point (see #4124)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10789 return parseFloat( alignValue.toFixed(5) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10790 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10791
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10792 _valueMin: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10793 return this.options.min;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10794 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10795
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10796 _valueMax: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10797 return this.options.max;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10798 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10799
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10800 _refreshValue: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10801 var oRange = this.options.range,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10802 o = this.options,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10803 self = this,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10804 animate = ( !this._animateOff ) ? o.animate : false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10805 valPercent,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10806 _set = {},
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10807 lastValPercent,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10808 value,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10809 valueMin,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10810 valueMax;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10811
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10812 if ( this.options.values && this.options.values.length ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10813 this.handles.each(function( i, j ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10814 valPercent = ( self.values(i) - self._valueMin() ) / ( self._valueMax() - self._valueMin() ) * 100;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10815 _set[ self.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%";
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10816 $( this ).stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10817 if ( self.options.range === true ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10818 if ( self.orientation === "horizontal" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10819 if ( i === 0 ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10820 self.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { left: valPercent + "%" }, o.animate );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10821 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10822 if ( i === 1 ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10823 self.range[ animate ? "animate" : "css" ]( { width: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10824 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10825 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10826 if ( i === 0 ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10827 self.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { bottom: ( valPercent ) + "%" }, o.animate );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10828 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10829 if ( i === 1 ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10830 self.range[ animate ? "animate" : "css" ]( { height: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10831 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10832 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10833 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10834 lastValPercent = valPercent;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10835 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10836 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10837 value = this.value();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10838 valueMin = this._valueMin();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10839 valueMax = this._valueMax();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10840 valPercent = ( valueMax !== valueMin ) ?
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10841 ( value - valueMin ) / ( valueMax - valueMin ) * 100 :
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10842 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10843 _set[ self.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%";
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10844 this.handle.stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10845
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10846 if ( oRange === "min" && this.orientation === "horizontal" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10847 this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { width: valPercent + "%" }, o.animate );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10848 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10849 if ( oRange === "max" && this.orientation === "horizontal" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10850 this.range[ animate ? "animate" : "css" ]( { width: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10851 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10852 if ( oRange === "min" && this.orientation === "vertical" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10853 this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { height: valPercent + "%" }, o.animate );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10854 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10855 if ( oRange === "max" && this.orientation === "vertical" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10856 this.range[ animate ? "animate" : "css" ]( { height: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10857 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10858 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10859 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10860
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10861 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10862
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10863 $.extend( $.ui.slider, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10864 version: "1.8.7"
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10865 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10866
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10867 }(jQuery));
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10868 /*
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10869 * Note: While Microsoft is not the author of this file, Microsoft is
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10870 * offering you a license subject to the terms of the Microsoft Software
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10871 * License Terms for Microsoft ASP.NET Model View Controller 3.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10872 * Microsoft reserves all other rights. The notices below are provided
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10873 * for informational purposes only and are not the license terms under
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10874 * which Microsoft distributed this file.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10875 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10876 * jQuery UI Tabs 1.8.7
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10877 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10878 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10879 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10880 * http://docs.jquery.com/UI/Tabs
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10881 *
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10882 * Depends:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10883 * jquery.ui.core.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10884 * jquery.ui.widget.js
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10885 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10886 (function( $, undefined ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10887
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10888 var tabId = 0,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10889 listId = 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10890
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10891 function getNextTabId() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10892 return ++tabId;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10893 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10894
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10895 function getNextListId() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10896 return ++listId;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10897 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10898
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10899 $.widget( "ui.tabs", {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10900 options: {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10901 add: null,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10902 ajaxOptions: null,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10903 cache: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10904 cookie: null, // e.g. { expires: 7, path: '/', domain: 'jquery.com', secure: true }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10905 collapsible: false,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10906 disable: null,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10907 disabled: [],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10908 enable: null,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10909 event: "click",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10910 fx: null, // e.g. { height: 'toggle', opacity: 'toggle', duration: 200 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10911 idPrefix: "ui-tabs-",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10912 load: null,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10913 panelTemplate: "<div></div>",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10914 remove: null,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10915 select: null,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10916 show: null,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10917 spinner: "<em>Loading&#8230;</em>",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10918 tabTemplate: "<li><a href='#{href}'><span>#{label}</span></a></li>"
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10919 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10920
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10921 _create: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10922 this._tabify( true );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10923 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10924
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10925 _setOption: function( key, value ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10926 if ( key == "selected" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10927 if (this.options.collapsible && value == this.options.selected ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10928 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10929 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10930 this.select( value );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10931 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10932 this.options[ key ] = value;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10933 this._tabify();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10934 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10935 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10936
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10937 _tabId: function( a ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10938 return a.title && a.title.replace( /\s/g, "_" ).replace( /[^\w\u00c0-\uFFFF-]/g, "" ) ||
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10939 this.options.idPrefix + getNextTabId();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10940 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10941
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10942 _sanitizeSelector: function( hash ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10943 // we need this because an id may contain a ":"
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10944 return hash.replace( /:/g, "\\:" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10945 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10946
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10947 _cookie: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10948 var cookie = this.cookie ||
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10949 ( this.cookie = this.options.cookie.name || "ui-tabs-" + getNextListId() );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10950 return $.cookie.apply( null, [ cookie ].concat( $.makeArray( arguments ) ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10951 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10952
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10953 _ui: function( tab, panel ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10954 return {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10955 tab: tab,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10956 panel: panel,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10957 index: this.anchors.index( tab )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10958 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10959 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10960
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10961 _cleanup: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10962 // restore all former loading tabs labels
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10963 this.lis.filter( ".ui-state-processing" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10964 .removeClass( "ui-state-processing" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10965 .find( "span:data(label.tabs)" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10966 .each(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10967 var el = $( this );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10968 el.html( el.data( "label.tabs" ) ).removeData( "label.tabs" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10969 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10970 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10971
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10972 _tabify: function( init ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10973 var self = this,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10974 o = this.options,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10975 fragmentId = /^#.+/; // Safari 2 reports '#' for an empty hash
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10976
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10977 this.list = this.element.find( "ol,ul" ).eq( 0 );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10978 this.lis = $( " > li:has(a[href])", this.list );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10979 this.anchors = this.lis.map(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10980 return $( "a", this )[ 0 ];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10981 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10982 this.panels = $( [] );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10983
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10984 this.anchors.each(function( i, a ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10985 var href = $( a ).attr( "href" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10986 // For dynamically created HTML that contains a hash as href IE < 8 expands
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10987 // such href to the full page url with hash and then misinterprets tab as ajax.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10988 // Same consideration applies for an added tab with a fragment identifier
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10989 // since a[href=#fragment-identifier] does unexpectedly not match.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10990 // Thus normalize href attribute...
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10991 var hrefBase = href.split( "#" )[ 0 ],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10992 baseEl;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10993 if ( hrefBase && ( hrefBase === location.toString().split( "#" )[ 0 ] ||
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10994 ( baseEl = $( "base" )[ 0 ]) && hrefBase === baseEl.href ) ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10995 href = a.hash;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10996 a.href = href;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10997 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10998
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
10999 // inline tab
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11000 if ( fragmentId.test( href ) ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11001 self.panels = self.panels.add( self.element.find( self._sanitizeSelector( href ) ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11002 // remote tab
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11003 // prevent loading the page itself if href is just "#"
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11004 } else if ( href && href !== "#" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11005 // required for restore on destroy
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11006 $.data( a, "href.tabs", href );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11007
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11008 // TODO until #3808 is fixed strip fragment identifier from url
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11009 // (IE fails to load from such url)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11010 $.data( a, "load.tabs", href.replace( /#.*$/, "" ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11011
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11012 var id = self._tabId( a );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11013 a.href = "#" + id;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11014 var $panel = self.element.find( "#" + id );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11015 if ( !$panel.length ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11016 $panel = $( o.panelTemplate )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11017 .attr( "id", id )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11018 .addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11019 .insertAfter( self.panels[ i - 1 ] || self.list );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11020 $panel.data( "destroy.tabs", true );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11021 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11022 self.panels = self.panels.add( $panel );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11023 // invalid tab href
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11024 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11025 o.disabled.push( i );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11026 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11027 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11028
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11029 // initialization from scratch
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11030 if ( init ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11031 // attach necessary classes for styling
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11032 this.element.addClass( "ui-tabs ui-widget ui-widget-content ui-corner-all" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11033 this.list.addClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11034 this.lis.addClass( "ui-state-default ui-corner-top" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11035 this.panels.addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11036
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11037 // Selected tab
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11038 // use "selected" option or try to retrieve:
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11039 // 1. from fragment identifier in url
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11040 // 2. from cookie
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11041 // 3. from selected class attribute on <li>
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11042 if ( o.selected === undefined ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11043 if ( location.hash ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11044 this.anchors.each(function( i, a ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11045 if ( a.hash == location.hash ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11046 o.selected = i;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11047 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11048 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11049 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11050 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11051 if ( typeof o.selected !== "number" && o.cookie ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11052 o.selected = parseInt( self._cookie(), 10 );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11053 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11054 if ( typeof o.selected !== "number" && this.lis.filter( ".ui-tabs-selected" ).length ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11055 o.selected = this.lis.index( this.lis.filter( ".ui-tabs-selected" ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11056 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11057 o.selected = o.selected || ( this.lis.length ? 0 : -1 );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11058 } else if ( o.selected === null ) { // usage of null is deprecated, TODO remove in next release
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11059 o.selected = -1;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11060 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11061
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11062 // sanity check - default to first tab...
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11063 o.selected = ( ( o.selected >= 0 && this.anchors[ o.selected ] ) || o.selected < 0 )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11064 ? o.selected
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11065 : 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11066
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11067 // Take disabling tabs via class attribute from HTML
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11068 // into account and update option properly.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11069 // A selected tab cannot become disabled.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11070 o.disabled = $.unique( o.disabled.concat(
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11071 $.map( this.lis.filter( ".ui-state-disabled" ), function( n, i ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11072 return self.lis.index( n );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11073 })
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11074 ) ).sort();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11075
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11076 if ( $.inArray( o.selected, o.disabled ) != -1 ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11077 o.disabled.splice( $.inArray( o.selected, o.disabled ), 1 );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11078 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11079
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11080 // highlight selected tab
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11081 this.panels.addClass( "ui-tabs-hide" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11082 this.lis.removeClass( "ui-tabs-selected ui-state-active" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11083 // check for length avoids error when initializing empty list
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11084 if ( o.selected >= 0 && this.anchors.length ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11085 self.element.find( self._sanitizeSelector( self.anchors[ o.selected ].hash ) ).removeClass( "ui-tabs-hide" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11086 this.lis.eq( o.selected ).addClass( "ui-tabs-selected ui-state-active" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11087
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11088 // seems to be expected behavior that the show callback is fired
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11089 self.element.queue( "tabs", function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11090 self._trigger( "show", null,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11091 self._ui( self.anchors[ o.selected ], self.element.find( self._sanitizeSelector( self.anchors[ o.selected ].hash ) ) ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11092 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11093
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11094 this.load( o.selected );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11095 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11096
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11097 // clean up to avoid memory leaks in certain versions of IE 6
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11098 // TODO: namespace this event
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11099 $( window ).bind( "unload", function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11100 self.lis.add( self.anchors ).unbind( ".tabs" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11101 self.lis = self.anchors = self.panels = null;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11102 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11103 // update selected after add/remove
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11104 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11105 o.selected = this.lis.index( this.lis.filter( ".ui-tabs-selected" ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11106 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11107
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11108 // update collapsible
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11109 // TODO: use .toggleClass()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11110 this.element[ o.collapsible ? "addClass" : "removeClass" ]( "ui-tabs-collapsible" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11111
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11112 // set or update cookie after init and add/remove respectively
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11113 if ( o.cookie ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11114 this._cookie( o.selected, o.cookie );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11115 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11116
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11117 // disable tabs
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11118 for ( var i = 0, li; ( li = this.lis[ i ] ); i++ ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11119 $( li )[ $.inArray( i, o.disabled ) != -1 &&
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11120 // TODO: use .toggleClass()
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11121 !$( li ).hasClass( "ui-tabs-selected" ) ? "addClass" : "removeClass" ]( "ui-state-disabled" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11122 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11123
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11124 // reset cache if switching from cached to not cached
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11125 if ( o.cache === false ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11126 this.anchors.removeData( "cache.tabs" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11127 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11128
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11129 // remove all handlers before, tabify may run on existing tabs after add or option change
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11130 this.lis.add( this.anchors ).unbind( ".tabs" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11131
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11132 if ( o.event !== "mouseover" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11133 var addState = function( state, el ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11134 if ( el.is( ":not(.ui-state-disabled)" ) ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11135 el.addClass( "ui-state-" + state );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11136 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11137 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11138 var removeState = function( state, el ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11139 el.removeClass( "ui-state-" + state );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11140 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11141 this.lis.bind( "mouseover.tabs" , function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11142 addState( "hover", $( this ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11143 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11144 this.lis.bind( "mouseout.tabs", function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11145 removeState( "hover", $( this ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11146 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11147 this.anchors.bind( "focus.tabs", function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11148 addState( "focus", $( this ).closest( "li" ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11149 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11150 this.anchors.bind( "blur.tabs", function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11151 removeState( "focus", $( this ).closest( "li" ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11152 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11153 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11154
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11155 // set up animations
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11156 var hideFx, showFx;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11157 if ( o.fx ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11158 if ( $.isArray( o.fx ) ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11159 hideFx = o.fx[ 0 ];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11160 showFx = o.fx[ 1 ];
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11161 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11162 hideFx = showFx = o.fx;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11163 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11164 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11165
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11166 // Reset certain styles left over from animation
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11167 // and prevent IE's ClearType bug...
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11168 function resetStyle( $el, fx ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11169 $el.css( "display", "" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11170 if ( !$.support.opacity && fx.opacity ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11171 $el[ 0 ].style.removeAttribute( "filter" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11172 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11173 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11174
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11175 // Show a tab...
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11176 var showTab = showFx
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11177 ? function( clicked, $show ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11178 $( clicked ).closest( "li" ).addClass( "ui-tabs-selected ui-state-active" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11179 $show.hide().removeClass( "ui-tabs-hide" ) // avoid flicker that way
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11180 .animate( showFx, showFx.duration || "normal", function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11181 resetStyle( $show, showFx );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11182 self._trigger( "show", null, self._ui( clicked, $show[ 0 ] ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11183 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11184 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11185 : function( clicked, $show ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11186 $( clicked ).closest( "li" ).addClass( "ui-tabs-selected ui-state-active" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11187 $show.removeClass( "ui-tabs-hide" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11188 self._trigger( "show", null, self._ui( clicked, $show[ 0 ] ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11189 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11190
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11191 // Hide a tab, $show is optional...
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11192 var hideTab = hideFx
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11193 ? function( clicked, $hide ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11194 $hide.animate( hideFx, hideFx.duration || "normal", function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11195 self.lis.removeClass( "ui-tabs-selected ui-state-active" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11196 $hide.addClass( "ui-tabs-hide" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11197 resetStyle( $hide, hideFx );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11198 self.element.dequeue( "tabs" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11199 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11200 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11201 : function( clicked, $hide, $show ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11202 self.lis.removeClass( "ui-tabs-selected ui-state-active" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11203 $hide.addClass( "ui-tabs-hide" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11204 self.element.dequeue( "tabs" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11205 };
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11206
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11207 // attach tab event handler, unbind to avoid duplicates from former tabifying...
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11208 this.anchors.bind( o.event + ".tabs", function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11209 var el = this,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11210 $li = $(el).closest( "li" ),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11211 $hide = self.panels.filter( ":not(.ui-tabs-hide)" ),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11212 $show = self.element.find( self._sanitizeSelector( el.hash ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11213
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11214 // If tab is already selected and not collapsible or tab disabled or
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11215 // or is already loading or click callback returns false stop here.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11216 // Check if click handler returns false last so that it is not executed
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11217 // for a disabled or loading tab!
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11218 if ( ( $li.hasClass( "ui-tabs-selected" ) && !o.collapsible) ||
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11219 $li.hasClass( "ui-state-disabled" ) ||
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11220 $li.hasClass( "ui-state-processing" ) ||
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11221 self.panels.filter( ":animated" ).length ||
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11222 self._trigger( "select", null, self._ui( this, $show[ 0 ] ) ) === false ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11223 this.blur();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11224 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11225 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11226
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11227 o.selected = self.anchors.index( this );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11228
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11229 self.abort();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11230
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11231 // if tab may be closed
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11232 if ( o.collapsible ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11233 if ( $li.hasClass( "ui-tabs-selected" ) ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11234 o.selected = -1;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11235
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11236 if ( o.cookie ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11237 self._cookie( o.selected, o.cookie );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11238 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11239
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11240 self.element.queue( "tabs", function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11241 hideTab( el, $hide );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11242 }).dequeue( "tabs" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11243
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11244 this.blur();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11245 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11246 } else if ( !$hide.length ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11247 if ( o.cookie ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11248 self._cookie( o.selected, o.cookie );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11249 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11250
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11251 self.element.queue( "tabs", function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11252 showTab( el, $show );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11253 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11254
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11255 // TODO make passing in node possible, see also http://dev.jqueryui.com/ticket/3171
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11256 self.load( self.anchors.index( this ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11257
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11258 this.blur();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11259 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11260 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11261 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11262
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11263 if ( o.cookie ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11264 self._cookie( o.selected, o.cookie );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11265 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11266
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11267 // show new tab
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11268 if ( $show.length ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11269 if ( $hide.length ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11270 self.element.queue( "tabs", function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11271 hideTab( el, $hide );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11272 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11273 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11274 self.element.queue( "tabs", function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11275 showTab( el, $show );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11276 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11277
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11278 self.load( self.anchors.index( this ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11279 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11280 throw "jQuery UI Tabs: Mismatching fragment identifier.";
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11281 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11282
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11283 // Prevent IE from keeping other link focussed when using the back button
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11284 // and remove dotted border from clicked link. This is controlled via CSS
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11285 // in modern browsers; blur() removes focus from address bar in Firefox
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11286 // which can become a usability and annoying problem with tabs('rotate').
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11287 if ( $.browser.msie ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11288 this.blur();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11289 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11290 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11291
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11292 // disable click in any case
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11293 this.anchors.bind( "click.tabs", function(){
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11294 return false;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11295 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11296 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11297
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11298 _getIndex: function( index ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11299 // meta-function to give users option to provide a href string instead of a numerical index.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11300 // also sanitizes numerical indexes to valid values.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11301 if ( typeof index == "string" ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11302 index = this.anchors.index( this.anchors.filter( "[href$=" + index + "]" ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11303 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11304
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11305 return index;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11306 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11307
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11308 destroy: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11309 var o = this.options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11310
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11311 this.abort();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11312
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11313 this.element
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11314 .unbind( ".tabs" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11315 .removeClass( "ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible" )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11316 .removeData( "tabs" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11317
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11318 this.list.removeClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11319
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11320 this.anchors.each(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11321 var href = $.data( this, "href.tabs" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11322 if ( href ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11323 this.href = href;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11324 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11325 var $this = $( this ).unbind( ".tabs" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11326 $.each( [ "href", "load", "cache" ], function( i, prefix ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11327 $this.removeData( prefix + ".tabs" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11328 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11329 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11330
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11331 this.lis.unbind( ".tabs" ).add( this.panels ).each(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11332 if ( $.data( this, "destroy.tabs" ) ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11333 $( this ).remove();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11334 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11335 $( this ).removeClass([
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11336 "ui-state-default",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11337 "ui-corner-top",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11338 "ui-tabs-selected",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11339 "ui-state-active",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11340 "ui-state-hover",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11341 "ui-state-focus",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11342 "ui-state-disabled",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11343 "ui-tabs-panel",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11344 "ui-widget-content",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11345 "ui-corner-bottom",
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11346 "ui-tabs-hide"
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11347 ].join( " " ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11348 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11349 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11350
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11351 if ( o.cookie ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11352 this._cookie( null, o.cookie );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11353 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11354
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11355 return this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11356 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11357
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11358 add: function( url, label, index ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11359 if ( index === undefined ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11360 index = this.anchors.length;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11361 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11362
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11363 var self = this,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11364 o = this.options,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11365 $li = $( o.tabTemplate.replace( /#\{href\}/g, url ).replace( /#\{label\}/g, label ) ),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11366 id = !url.indexOf( "#" ) ? url.replace( "#", "" ) : this._tabId( $( "a", $li )[ 0 ] );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11367
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11368 $li.addClass( "ui-state-default ui-corner-top" ).data( "destroy.tabs", true );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11369
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11370 // try to find an existing element before creating a new one
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11371 var $panel = self.element.find( "#" + id );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11372 if ( !$panel.length ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11373 $panel = $( o.panelTemplate )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11374 .attr( "id", id )
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11375 .data( "destroy.tabs", true );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11376 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11377 $panel.addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11378
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11379 if ( index >= this.lis.length ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11380 $li.appendTo( this.list );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11381 $panel.appendTo( this.list[ 0 ].parentNode );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11382 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11383 $li.insertBefore( this.lis[ index ] );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11384 $panel.insertBefore( this.panels[ index ] );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11385 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11386
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11387 o.disabled = $.map( o.disabled, function( n, i ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11388 return n >= index ? ++n : n;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11389 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11390
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11391 this._tabify();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11392
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11393 if ( this.anchors.length == 1 ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11394 o.selected = 0;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11395 $li.addClass( "ui-tabs-selected ui-state-active" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11396 $panel.removeClass( "ui-tabs-hide" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11397 this.element.queue( "tabs", function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11398 self._trigger( "show", null, self._ui( self.anchors[ 0 ], self.panels[ 0 ] ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11399 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11400
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11401 this.load( 0 );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11402 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11403
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11404 this._trigger( "add", null, this._ui( this.anchors[ index ], this.panels[ index ] ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11405 return this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11406 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11407
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11408 remove: function( index ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11409 index = this._getIndex( index );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11410 var o = this.options,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11411 $li = this.lis.eq( index ).remove(),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11412 $panel = this.panels.eq( index ).remove();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11413
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11414 // If selected tab was removed focus tab to the right or
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11415 // in case the last tab was removed the tab to the left.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11416 if ( $li.hasClass( "ui-tabs-selected" ) && this.anchors.length > 1) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11417 this.select( index + ( index + 1 < this.anchors.length ? 1 : -1 ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11418 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11419
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11420 o.disabled = $.map(
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11421 $.grep( o.disabled, function(n, i) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11422 return n != index;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11423 }),
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11424 function( n, i ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11425 return n >= index ? --n : n;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11426 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11427
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11428 this._tabify();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11429
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11430 this._trigger( "remove", null, this._ui( $li.find( "a" )[ 0 ], $panel[ 0 ] ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11431 return this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11432 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11433
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11434 enable: function( index ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11435 index = this._getIndex( index );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11436 var o = this.options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11437 if ( $.inArray( index, o.disabled ) == -1 ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11438 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11439 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11440
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11441 this.lis.eq( index ).removeClass( "ui-state-disabled" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11442 o.disabled = $.grep( o.disabled, function( n, i ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11443 return n != index;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11444 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11445
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11446 this._trigger( "enable", null, this._ui( this.anchors[ index ], this.panels[ index ] ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11447 return this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11448 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11449
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11450 disable: function( index ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11451 index = this._getIndex( index );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11452 var self = this, o = this.options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11453 // cannot disable already selected tab
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11454 if ( index != o.selected ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11455 this.lis.eq( index ).addClass( "ui-state-disabled" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11456
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11457 o.disabled.push( index );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11458 o.disabled.sort();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11459
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11460 this._trigger( "disable", null, this._ui( this.anchors[ index ], this.panels[ index ] ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11461 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11462
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11463 return this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11464 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11465
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11466 select: function( index ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11467 index = this._getIndex( index );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11468 if ( index == -1 ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11469 if ( this.options.collapsible && this.options.selected != -1 ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11470 index = this.options.selected;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11471 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11472 return this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11473 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11474 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11475 this.anchors.eq( index ).trigger( this.options.event + ".tabs" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11476 return this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11477 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11478
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11479 load: function( index ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11480 index = this._getIndex( index );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11481 var self = this,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11482 o = this.options,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11483 a = this.anchors.eq( index )[ 0 ],
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11484 url = $.data( a, "load.tabs" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11485
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11486 this.abort();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11487
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11488 // not remote or from cache
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11489 if ( !url || this.element.queue( "tabs" ).length !== 0 && $.data( a, "cache.tabs" ) ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11490 this.element.dequeue( "tabs" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11491 return;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11492 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11493
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11494 // load remote from here on
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11495 this.lis.eq( index ).addClass( "ui-state-processing" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11496
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11497 if ( o.spinner ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11498 var span = $( "span", a );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11499 span.data( "label.tabs", span.html() ).html( o.spinner );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11500 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11501
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11502 this.xhr = $.ajax( $.extend( {}, o.ajaxOptions, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11503 url: url,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11504 success: function( r, s ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11505 self.element.find( self._sanitizeSelector( a.hash ) ).html( r );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11506
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11507 // take care of tab labels
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11508 self._cleanup();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11509
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11510 if ( o.cache ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11511 $.data( a, "cache.tabs", true );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11512 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11513
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11514 self._trigger( "load", null, self._ui( self.anchors[ index ], self.panels[ index ] ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11515 try {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11516 o.ajaxOptions.success( r, s );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11517 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11518 catch ( e ) {}
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11519 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11520 error: function( xhr, s, e ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11521 // take care of tab labels
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11522 self._cleanup();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11523
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11524 self._trigger( "load", null, self._ui( self.anchors[ index ], self.panels[ index ] ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11525 try {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11526 // Passing index avoid a race condition when this method is
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11527 // called after the user has selected another tab.
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11528 // Pass the anchor that initiated this request allows
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11529 // loadError to manipulate the tab content panel via $(a.hash)
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11530 o.ajaxOptions.error( xhr, s, index, a );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11531 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11532 catch ( e ) {}
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11533 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11534 } ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11535
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11536 // last, so that load event is fired before show...
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11537 self.element.dequeue( "tabs" );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11538
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11539 return this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11540 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11541
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11542 abort: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11543 // stop possibly running animations
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11544 this.element.queue( [] );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11545 this.panels.stop( false, true );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11546
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11547 // "tabs" queue must not contain more than two elements,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11548 // which are the callbacks for the latest clicked tab...
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11549 this.element.queue( "tabs", this.element.queue( "tabs" ).splice( -2, 2 ) );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11550
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11551 // terminate pending requests from other tabs
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11552 if ( this.xhr ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11553 this.xhr.abort();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11554 delete this.xhr;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11555 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11556
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11557 // take care of tab labels
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11558 this._cleanup();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11559 return this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11560 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11561
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11562 url: function( index, url ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11563 this.anchors.eq( index ).removeData( "cache.tabs" ).data( "load.tabs", url );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11564 return this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11565 },
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11566
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11567 length: function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11568 return this.anchors.length;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11569 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11570 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11571
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11572 $.extend( $.ui.tabs, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11573 version: "1.8.7"
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11574 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11575
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11576 /*
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11577 * Tabs Extensions
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11578 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11579
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11580 /*
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11581 * Rotate
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11582 */
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11583 $.extend( $.ui.tabs.prototype, {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11584 rotation: null,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11585 rotate: function( ms, continuing ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11586 var self = this,
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11587 o = this.options;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11588
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11589 var rotate = self._rotate || ( self._rotate = function( e ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11590 clearTimeout( self.rotation );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11591 self.rotation = setTimeout(function() {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11592 var t = o.selected;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11593 self.select( ++t < self.anchors.length ? t : 0 );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11594 }, ms );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11595
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11596 if ( e ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11597 e.stopPropagation();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11598 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11599 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11600
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11601 var stop = self._unrotate || ( self._unrotate = !continuing
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11602 ? function(e) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11603 if (e.clientX) { // in case of a true click
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11604 self.rotate(null);
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11605 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11606 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11607 : function( e ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11608 t = o.selected;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11609 rotate();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11610 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11611
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11612 // start rotation
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11613 if ( ms ) {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11614 this.element.bind( "tabsshow", rotate );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11615 this.anchors.bind( o.event + ".tabs", stop );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11616 rotate();
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11617 // stop rotation
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11618 } else {
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11619 clearTimeout( self.rotation );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11620 this.element.unbind( "tabsshow", rotate );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11621 this.anchors.unbind( o.event + ".tabs", stop );
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11622 delete this._rotate;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11623 delete this._unrotate;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11624 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11625
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11626 return this;
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11627 }
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11628 });
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11629
c62b77fc33f4 website inicial
nelo@MTEySS.neluz.int
parents:
diff changeset
11630 })( jQuery );