annotate rhodecode/public/js/yui/imageloader/imageloader-debug.js @ 1073:289ff43cc190 beta

update YUI dev libs to latest version
author Marcin Kuzminski <marcin@python-works.com>
date Sun, 20 Feb 2011 20:58:07 +0100
parents 1e757ac98988
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1 /*
1073
289ff43cc190 update YUI dev libs to latest version
Marcin Kuzminski <marcin@python-works.com>
parents: 547
diff changeset
2 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
3 Code licensed under the BSD License:
1073
289ff43cc190 update YUI dev libs to latest version
Marcin Kuzminski <marcin@python-works.com>
parents: 547
diff changeset
4 http://developer.yahoo.com/yui/license.html
289ff43cc190 update YUI dev libs to latest version
Marcin Kuzminski <marcin@python-works.com>
parents: 547
diff changeset
5 version: 2.8.2r1
0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
6 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
7 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
8 * The ImageLoader Utility is a framework to dynamically load images according to certain triggers,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
9 * enabling faster load times and a more responsive UI.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
10 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
11 * @module imageloader
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
12 * @namespace YAHOO.util
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
13 * @requires yahoo, dom, event
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
14 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
15
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
16 if (typeof(YAHOO.util.ImageLoader) == 'undefined') {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
17 YAHOO.util.ImageLoader = {};
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
18 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
19
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
20 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
21 * A group for images. A group can have one time limit and a series of triggers. Thus the images belonging to this group must share these constraints.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
22 * @class YAHOO.util.ImageLoader.group
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
23 * @requires YAHOO.util.Dom
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
24 * @requires YAHOO.util.Event
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
25 * @constructor
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
26 * @param {String|HTMLElement} trigEl The HTML element id or reference to assign the trigger event to. Can be null for no trigger
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
27 * @param {String} trigAct The type of event to assign to trigEl. Can be null for no trigger
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
28 * @param {Number} timeout Timeout (time limit) length, in seconds. Can be undefined, or <= 0, for no time limit
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
29 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
30 YAHOO.util.ImageLoader.group = function(trigEl, trigAct, timeout) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
31 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
32 * Name for the group. Only used to identify the group in logging statements
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
33 * @property name
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
34 * @type String
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
35 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
36 this.name = 'unnamed';
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
37
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
38 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
39 * Collection of images registered with this group
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
40 * @property _imgObjs
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
41 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
42 * @type Object
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
43 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
44 this._imgObjs = {};
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
45
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
46 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
47 * Timeout (time limit) length, in seconds
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
48 * @property timeoutLen
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
49 * @type Number
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
50 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
51 this.timeoutLen = timeout;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
52
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
53 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
54 * Timeout object to keep a handle on the time limit
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
55 * @property _timeout
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
56 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
57 * @type Object
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
58 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
59 this._timeout = null;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
60
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
61 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
62 * Collection of triggers for this group.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
63 * Keeps track of each trigger's element, event, and event-listener-callback "fetch" function
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
64 * @property _triggers
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
65 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
66 * @type Array
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
67 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
68 this._triggers = [];
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
69
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
70 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
71 * Collection of custom-event triggers for this group.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
72 * Keeps track of each trigger's event object and event-listener-callback "fetch" function
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
73 * @property _customTriggers
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
74 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
75 * @type Array
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
76 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
77 this._customTriggers = [];
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
78
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
79 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
80 * Flag to check if images are above the fold. If foldConditional is true, the group will check each of its image locations at page load. If any part of the image is within the client viewport, the image is displayed immediately
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
81 * @property foldConditional
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
82 * @type Boolean
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
83 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
84 this.foldConditional = false;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
85
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
86 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
87 * Class name that will identify images belonging to the group. This class name will be removed from each element in order to fetch images.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
88 * This class should have, in its CSS style definition, "background:none !important;"
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
89 * @property className
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
90 * @type String
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
91 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
92 this.className = null;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
93
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
94 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
95 * HTML elements having the class name that is associated with this group
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
96 * Elements are stored during the _foldCheck function and reused later during the fetch function. Gives a slight performance improvement when className and foldConditional are both used
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
97 * @property _classImageEls
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
98 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
99 * @type Array
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
100 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
101 this._classImageEls = null;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
102
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
103 // add a listener to set the time limit in the onload
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
104 YAHOO.util.Event.addListener(window, 'load', this._onloadTasks, this, true);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
105 // add the trigger
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
106 this.addTrigger(trigEl, trigAct);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
107
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
108 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
109
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
110 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
111 * Adds a trigger to the group. Call this with the same style as YAHOO.util.Event.addListener
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
112 * @method addTrigger
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
113 * @param {String|HTMLElement} trigEl The HTML element id or reference to assign the trigger event to
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
114 * @param {String} trigAct The type of event to assign to trigEl
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
115 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
116 YAHOO.util.ImageLoader.group.prototype.addTrigger = function(trigEl, trigAct) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
117 if (! trigEl || ! trigAct) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
118 return;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
119 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
120 /* Need to wrap the fetch function. Event Util can't distinguish prototyped functions of different instantiations
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
121 * Leads to this scenario: groupA and groupZ both have window-scroll triggers. groupZ also has a 2-sec timeout (groupA has no timeout).
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
122 * groupZ's timeout fires; we remove the triggers. The removeListener call finds the first window-scroll event with Y.u.IL.p.fetch, which is groupA's.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
123 * groupA's trigger is removed and never fires, leaving images unfetched
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
124 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
125 var wrappedFetch = function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
126 this.fetch();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
127 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
128 this._triggers.push([trigEl, trigAct, wrappedFetch]);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
129 YAHOO.util.Event.addListener(trigEl, trigAct, wrappedFetch, this, true);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
130 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
131
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
132 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
133 * Adds a custom event trigger to the group.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
134 * @method addCustomTrigger
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
135 * @param {Object} event A YAHOO.util.CustomEvent object
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
136 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
137 YAHOO.util.ImageLoader.group.prototype.addCustomTrigger = function(event) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
138 // make sure we're dealing with a CustomEvent object
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
139 if (! event || ! event instanceof YAHOO.util.CustomEvent) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
140 return;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
141 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
142
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
143 // see comment in addTrigger()
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
144 var wrappedFetch = function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
145 this.fetch();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
146 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
147 this._customTriggers.push([event, wrappedFetch]);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
148 event.subscribe(wrappedFetch, this, true);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
149 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
150
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
151 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
152 * Setup to do in the window's onload
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
153 * Initiates time limit for group; executes the fold check for the images
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
154 * @method _onloadTasks
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
155 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
156 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
157 YAHOO.util.ImageLoader.group.prototype._onloadTasks = function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
158 if (this.timeoutLen && typeof(this.timeoutLen) == 'number' && this.timeoutLen > 0) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
159 this._timeout = setTimeout(this._getFetchTimeout(), this.timeoutLen * 1000);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
160 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
161
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
162 if (this.foldConditional) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
163 this._foldCheck();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
164 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
165 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
166
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
167 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
168 * Returns the group's fetch method, with the proper closure, for use with setTimeout
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
169 * @method _getFetchTimeout
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
170 * @return {Function} group's fetch method
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
171 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
172 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
173 YAHOO.util.ImageLoader.group.prototype._getFetchTimeout = function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
174 var self = this;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
175 return function() { self.fetch(); };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
176 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
177
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
178 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
179 * Registers a background image with the group
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
180 * @method registerBgImage
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
181 * @param {String} domId HTML DOM id of the image element
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
182 * @param {String} url URL for the image
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
183 * @return {Object} bgImgObj that was registered, for modifying any attributes in the object
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
184 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
185 YAHOO.util.ImageLoader.group.prototype.registerBgImage = function(domId, url) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
186 this._imgObjs[domId] = new YAHOO.util.ImageLoader.bgImgObj(domId, url);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
187 return this._imgObjs[domId];
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
188 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
189 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
190 * Registers a src image with the group
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
191 * @method registerSrcImage
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
192 * @param {String} domId HTML DOM id of the image element
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
193 * @param {String} url URL for the image
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
194 * @param {Int} width pixel width of the image - defaults to image's natural size
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
195 * @param {Int} height pixel height of the image - defaults to image's natural size
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
196 * @return {Object} srcImgObj that was registered, for modifying any attributes in the object
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
197 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
198 YAHOO.util.ImageLoader.group.prototype.registerSrcImage = function(domId, url, width, height) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
199 this._imgObjs[domId] = new YAHOO.util.ImageLoader.srcImgObj(domId, url, width, height);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
200 return this._imgObjs[domId];
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
201 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
202 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
203 * Registers an alpha-channel-type png background image with the group
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
204 * @method registerPngBgImage
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
205 * @param {String} domId HTML DOM id of the image element
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
206 * @param {String} url URL for the image
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
207 * @param {Object} ailProps The AlphaImageLoader properties to be set for the image
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
208 * Valid properties are 'sizingMethod' and 'enabled'
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
209 * @return {Object} pngBgImgObj that was registered, for modifying any attributes in the object
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
210 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
211 YAHOO.util.ImageLoader.group.prototype.registerPngBgImage = function(domId, url, ailProps) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
212 this._imgObjs[domId] = new YAHOO.util.ImageLoader.pngBgImgObj(domId, url, ailProps);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
213 return this._imgObjs[domId];
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
214 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
215
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
216 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
217 * Displays the images in the group
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
218 * @method fetch
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
219 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
220 YAHOO.util.ImageLoader.group.prototype.fetch = function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
221 YAHOO.log('Fetching images in group: "' + this.name + '".', 'info', 'imageloader');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
222
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
223 clearTimeout(this._timeout);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
224 // remove all listeners
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
225 for (var i=0, len = this._triggers.length; i < len; i++) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
226 YAHOO.util.Event.removeListener(this._triggers[i][0], this._triggers[i][1], this._triggers[i][2]);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
227 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
228 // remove custom event subscriptions
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
229 for (var i=0, len = this._customTriggers.length; i < len; i++) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
230 this._customTriggers[i][0].unsubscribe(this._customTriggers[i][1], this);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
231 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
232
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
233 // fetch whatever we need to by className
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
234 this._fetchByClass();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
235
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
236 // fetch registered images
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
237 for (var id in this._imgObjs) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
238 if (YAHOO.lang.hasOwnProperty(this._imgObjs, id)) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
239 this._imgObjs[id].fetch();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
240 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
241 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
242 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
243
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
244 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
245 * Checks the position of each image in the group. If any part of the image is within the client viewport, shows the image immediately.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
246 * @method _foldCheck
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
247 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
248 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
249 YAHOO.util.ImageLoader.group.prototype._foldCheck = function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
250 YAHOO.log('Checking for images above the fold in group: "' + this.name + '"', 'info', 'imageloader');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
251 var scrollTop = (document.compatMode != 'CSS1Compat') ? document.body.scrollTop : document.documentElement.scrollTop;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
252 var viewHeight = YAHOO.util.Dom.getViewportHeight();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
253 var hLimit = scrollTop + viewHeight;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
254 var scrollLeft = (document.compatMode != 'CSS1Compat') ? document.body.scrollLeft : document.documentElement.scrollLeft;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
255 var viewWidth = YAHOO.util.Dom.getViewportWidth();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
256 var wLimit = scrollLeft + viewWidth;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
257 for (var id in this._imgObjs) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
258 if (YAHOO.lang.hasOwnProperty(this._imgObjs, id)) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
259 var elPos = YAHOO.util.Dom.getXY(this._imgObjs[id].domId);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
260 if (elPos[1] < hLimit && elPos[0] < wLimit) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
261 YAHOO.log('Image with id "' + this._imgObjs[id].domId + '" is above the fold. Fetching image.', 'info', 'imageloader');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
262 this._imgObjs[id].fetch();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
263 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
264 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
265 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
266 // and by class
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
267 if (this.className) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
268 this._classImageEls = YAHOO.util.Dom.getElementsByClassName(this.className);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
269 for (var i=0, len = this._classImageEls.length; i < len; i++) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
270 var elPos = YAHOO.util.Dom.getXY(this._classImageEls[i]);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
271 if (elPos[1] < hLimit && elPos[0] < wLimit) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
272 YAHOO.log('Image with id "' + this._classImageEls[i].id + '" is above the fold. Fetching image. (Image registered by class name with the group - may not have an id.)', 'info', 'imageloader');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
273 YAHOO.util.Dom.removeClass(this._classImageEls[i], this.className);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
274 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
275 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
276 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
277 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
278
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
279 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
280 * Finds all elements in the Dom with the class name specified in the group. Removes the class from the element in order to let the style definitions trigger the image fetching
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
281 * @method _fetchByClass
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
282 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
283 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
284 YAHOO.util.ImageLoader.group.prototype._fetchByClass = function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
285 if (! this.className) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
286 return;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
287 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
288
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
289 YAHOO.log('Fetching all images with class "' + this.className + '" in group "' + this.name + '".', 'info', 'imageloader');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
290 // this._classImageEls may have been set during _foldCheck
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
291 if (this._classImageEls === null) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
292 this._classImageEls = YAHOO.util.Dom.getElementsByClassName(this.className);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
293 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
294 YAHOO.util.Dom.removeClass(this._classImageEls, this.className);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
295 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
296
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
297
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
298 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
299 * Base class for image objects to be registered with the groups
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
300 * @class YAHOO.util.ImageLoader.imgObj
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
301 * @constructor
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
302 * @param {String} domId HTML DOM id of the image element
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
303 * @param {String} url URL for the image
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
304 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
305 YAHOO.util.ImageLoader.imgObj = function(domId, url) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
306 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
307 * HTML DOM id of the image element
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
308 * @property domId
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
309 * @type String
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
310 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
311 this.domId = domId;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
312
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
313 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
314 * URL for the image
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
315 * @property url
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
316 * @type String
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
317 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
318 this.url = url;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
319
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
320 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
321 * Pixel width of the image. Will be set as a "width" attribute after the image is fetched.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
322 * Detaults to the natural width of the image.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
323 * Only appropriate with src images
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
324 * @property width
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
325 * @type Int
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
326 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
327 this.width = null;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
328
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
329 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
330 * Pixel height of the image. Will be set as a "height" attribute after the image is fetched.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
331 * Detaults to the natural height of the image.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
332 * Only appropriate with src images
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
333 * @property height
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
334 * @type Int
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
335 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
336 this.height = null;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
337
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
338 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
339 * Whether the style.visibility should be set to "visible" after the image is fetched.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
340 * Used when setting src images as visibility:hidden prior to image fetching
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
341 * @property setVisible
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
342 * @type Boolean
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
343 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
344 this.setVisible = false;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
345
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
346 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
347 * Whether the image has already been fetched. In the case of a foldCondional group, keeps track for when the trigger is fired so images aren't fetched twice
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
348 * @property _fetched
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
349 * @type Boolean
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
350 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
351 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
352 this._fetched = false;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
353 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
354
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
355 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
356 * Displays the image; puts the URL into the DOM
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
357 * @method fetch
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
358 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
359 YAHOO.util.ImageLoader.imgObj.prototype.fetch = function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
360 if (this._fetched) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
361 return;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
362 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
363 var el = document.getElementById(this.domId);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
364 if (! el) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
365 return;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
366 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
367 YAHOO.log('Fetching image with id "' + this.domId + '".', 'info', 'imageloader');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
368 this._applyUrl(el);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
369
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
370 if (this.setVisible) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
371 el.style.visibility = 'visible';
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
372 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
373 if (this.width) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
374 el.width = this.width;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
375 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
376 if (this.height) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
377 el.height = this.height;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
378 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
379 this._fetched = true;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
380 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
381
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
382 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
383 * Inserts the image URL into the DOM so that the image is displayed.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
384 * Must be overridden by child class
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
385 * @method _applyUrl
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
386 * @param {Object} el HTML DOM element
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
387 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
388 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
389 YAHOO.util.ImageLoader.imgObj.prototype._applyUrl = function(el) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
390 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
391
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
392 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
393 * Background image object. A background image is one whose URL is specified by "background-image" in the element's style
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
394 * @class YAHOO.util.ImageLoader.bgImgObj
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
395 * @constructor
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
396 * @extends YAHOO.util.ImageLoader.imgObj
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
397 * @param {String} domId HTML DOM id of the image element
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
398 * @param {String} url URL for the image
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
399 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
400 YAHOO.util.ImageLoader.bgImgObj = function(domId, url) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
401 YAHOO.util.ImageLoader.bgImgObj.superclass.constructor.call(this, domId, url);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
402 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
403
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
404 YAHOO.lang.extend(YAHOO.util.ImageLoader.bgImgObj, YAHOO.util.ImageLoader.imgObj);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
405
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
406 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
407 * Inserts the image URL into the DOM so that the image is displayed.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
408 * Sets style.backgroundImage
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
409 * @method _applyUrl
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
410 * @param {Object} el HTML DOM element
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
411 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
412 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
413 YAHOO.util.ImageLoader.bgImgObj.prototype._applyUrl = function(el) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
414 el.style.backgroundImage = "url('" + this.url + "')";
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
415 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
416
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
417 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
418 * Source image object. A source image is one whose URL is specified by a src attribute in the DOM element
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
419 * @class YAHOO.util.ImageLoader.srcImgObj
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
420 * @constructor
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
421 * @extends YAHOO.util.ImageLoader.imgObj
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
422 * @param {String} domId HTML DOM id of the image element
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
423 * @param {String} url URL for the image
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
424 * @param {Int} width pixel width of the image - defaults to image's natural size
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
425 * @param {Int} height pixel height of the image - defaults to image's natural size
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
426 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
427 YAHOO.util.ImageLoader.srcImgObj = function(domId, url, width, height) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
428 YAHOO.util.ImageLoader.srcImgObj.superclass.constructor.call(this, domId, url);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
429 this.width = width;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
430 this.height = height;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
431 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
432
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
433 YAHOO.lang.extend(YAHOO.util.ImageLoader.srcImgObj, YAHOO.util.ImageLoader.imgObj);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
434
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
435 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
436 * Inserts the image URL into the DOM so that the image is displayed.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
437 * Sets src
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
438 * @method _applyUrl
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
439 * @param {Object} el HTML DOM element
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
440 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
441 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
442 YAHOO.util.ImageLoader.srcImgObj.prototype._applyUrl = function(el) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
443 el.src = this.url;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
444 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
445
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
446 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
447 * PNG background image object. A PNG background image is one whose URL is specified through AlphaImageLoader or by "background-image" in the element's style
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
448 * @class YAHOO.util.ImageLoader.pngBgImgObj
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
449 * @constructor
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
450 * @extends YAHOO.util.ImageLoader.imgObj
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
451 * @param {String} domId HTML DOM id of the image element
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
452 * @param {String} url URL for the image
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
453 * @param {Object} ailProps The AlphaImageLoader properties to be set for the image
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
454 * Valid properties are 'sizingMethod' and 'enabled'
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
455 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
456 YAHOO.util.ImageLoader.pngBgImgObj = function(domId, url, ailProps) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
457 YAHOO.util.ImageLoader.pngBgImgObj.superclass.constructor.call(this, domId, url);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
458
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
459 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
460 * AlphaImageLoader properties to be set for the image.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
461 * Valid properties are "sizingMethod" and "enabled".
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
462 * @property props
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
463 * @type Object
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
464 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
465 this.props = ailProps || {};
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
466 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
467
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
468 YAHOO.lang.extend(YAHOO.util.ImageLoader.pngBgImgObj, YAHOO.util.ImageLoader.imgObj);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
469
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
470 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
471 * Inserts the image URL into the DOM so that the image is displayed.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
472 * If the browser is determined to be IE6 (or older), sets the AlphaImageLoader src; otherwise sets style.backgroundImage
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
473 * @method _applyUrl
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
474 * @param {Object} el HTML DOM element
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
475 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
476 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
477 YAHOO.util.ImageLoader.pngBgImgObj.prototype._applyUrl = function(el) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
478 if (YAHOO.env.ua.ie && YAHOO.env.ua.ie <= 6) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
479 var sizingMethod = (YAHOO.lang.isUndefined(this.props.sizingMethod)) ? 'scale' : this.props.sizingMethod;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
480 var enabled = (YAHOO.lang.isUndefined(this.props.enabled)) ? 'true' : this.props.enabled;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
481 el.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + this.url + '", sizingMethod="' + sizingMethod + '", enabled="' + enabled + '")';
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
482 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
483 else {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
484 el.style.backgroundImage = "url('" + this.url + "')";
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
485 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
486 };
1073
289ff43cc190 update YUI dev libs to latest version
Marcin Kuzminski <marcin@python-works.com>
parents: 547
diff changeset
487 YAHOO.register("imageloader", YAHOO.util.ImageLoader, {version: "2.8.2r1", build: "7"});