src/cm/media/js/lib/yui/yui3.0.0/build/imageloader/imageloader-debug.js
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 0 40c8f766c9b8
permissions -rw-r--r--
add link to "privacy policy" in the header test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     1
/*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     2
Copyright (c) 2009, Yahoo! Inc. All rights reserved.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     3
Code licensed under the BSD License:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     4
http://developer.yahoo.net/yui/license.txt
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     5
version: 3.0.0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     6
build: 1549
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     7
*/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     8
YUI.add('imageloader', function(Y) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     9
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    10
/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    11
 * The ImageLoader Utility is a framework to dynamically load images according to certain triggers,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    12
 * enabling faster load times and a more responsive UI.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    13
 *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    14
 * @module imageloader
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    15
 * @requires base-base, node-style, node-screen
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    16
 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    17
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    18
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    19
	/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    20
	 * 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.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    21
	 * @class ImgLoadGroup
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    22
	 * @extends Base
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    23
	 * @constructor
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    24
	 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    25
	Y.ImgLoadGroup = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    26
		// call init first, because it sets up local vars for storing attribute-related info
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    27
		this._init();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    28
		Y.ImgLoadGroup.superclass.constructor.apply(this, arguments);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    29
	};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    30
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    31
	Y.ImgLoadGroup.NAME = 'imgLoadGroup';
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    32
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    33
	Y.ImgLoadGroup.ATTRS = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    34
		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    35
		/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    36
		 * Name for the group. Only used to identify the group in logging statements.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    37
		 * @attribute name
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    38
		 * @type String
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    39
		 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    40
		name: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    41
			value: ''
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    42
		},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    43
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    44
		/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    45
		 * Time limit, in seconds, after which images are fetched regardless of trigger events.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    46
		 * @attribute timeLimit
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    47
		 * @type Number
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    48
		 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    49
		timeLimit: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    50
			value: null
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    51
		},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    52
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    53
		/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    54
		 * Distance below the fold for which images are loaded. Images are not loaded until they are at most this distance away from (or above) the fold.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    55
		 * This check is performed at page load (domready) and after any window scroll or window resize event (until all images are loaded).
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    56
		 * @attribute foldDistance
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    57
		 * @type Number
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    58
		 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    59
		foldDistance: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    60
			validator: Y.Lang.isNumber,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    61
			setter: function(val) { this._setFoldTriggers(); return val; },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    62
			lazyAdd: false
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    63
		},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    64
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    65
		/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    66
		 * Class name that will identify images belonging to the group. This class name will be removed from each element in order to fetch images.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    67
		 * This class should have, in its CSS style definition, "<code>background:none !important;</code>".
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    68
		 * @attribute className
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    69
		 * @type String
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    70
		 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    71
		className: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    72
			value: null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    73
			setter: function(name) { this._className = name; return name; },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    74
			lazyAdd: false
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    75
		}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    76
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    77
	};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    78
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    79
	var groupProto = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    80
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    81
		/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    82
		 * Initialize all private members needed for the group.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    83
		 * @method _init
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    84
		 * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    85
		 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    86
		_init: function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    87
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    88
			/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    89
			 * Collection of triggers for this group.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    90
			 * Keeps track of each trigger's event handle, as returned from <code>Y.on</code>.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    91
			 * @property _triggers
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    92
			 * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    93
			 * @type Array
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    94
			 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    95
			this._triggers = [];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    96
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    97
			/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    98
			 * Collection of images (<code>Y.ImgLoadImgObj</code> objects) registered with this group, keyed by DOM id.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    99
			 * @property _imgObjs
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   100
			 * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   101
			 * @type Object
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   102
			 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   103
			this._imgObjs = {};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   104
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   105
			/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   106
			 * Timeout object to keep a handle on the time limit.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   107
			 * @property _timeout
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   108
			 * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   109
			 * @type Object
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   110
			 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   111
			this._timeout = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   112
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   113
			/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   114
			 * DOM elements having the class name that is associated with this group.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   115
			 * Elements are stored during the <code>_foldCheck</code> function and reused later during any subsequent <code>_foldCheck</code> calls - gives a slight performance improvement when the page fold is repeatedly checked.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   116
			 * @property _classImageEls
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   117
			 * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   118
			 * @type Array
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   119
			 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   120
			this._classImageEls = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   121
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   122
			/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   123
			 * Keep the CSS class name in a member variable for ease and speed.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   124
			 * @property _className
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   125
			 * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   126
			 * @type String
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   127
			 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   128
			this._className = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   129
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   130
			/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   131
			 * Boolean tracking whether the window scroll and window resize triggers have been set if this is a fold group.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   132
			 * @property _areFoldTriggersSet
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   133
			 * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   134
			 * @type Boolean
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   135
			 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   136
			this._areFoldTriggersSet = false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   137
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   138
			/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   139
			 * The maximum pixel height of the document that has been made visible.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   140
			 * During fold checks, if the user scrolls up then there's no need to check for newly exposed images.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   141
			 * @property _maxKnownHLimit
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   142
			 * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   143
			 * @type Int
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   144
			 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   145
			this._maxKnownHLimit = 0;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   146
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   147
			// add a listener to domready that will start the time limit
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   148
			Y.on('domready', this._onloadTasks, this);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   149
		},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   150
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   151
		/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   152
		 * Adds a trigger to the group. Arguments are passed to <code>Y.on</code>.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   153
		 * @method addTrigger
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   154
		 * @chainable
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   155
		 * @param {Object} obj  The DOM object to attach the trigger event to
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   156
		 * @param {String} type  The event type
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   157
		 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   158
		addTrigger: function(obj, type) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   159
			if (! obj || ! type) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   160
				return this;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   161
			}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   162
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   163
			Y.log('adding trigger to group: ' + this.get('name'), 'info', 'imageloader');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   164
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   165
			/* Need to wrap the fetch function. Event Util can't distinguish prototyped functions of different instantiations.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   166
			 *   Leads to this scenario: groupA and groupZ both have window-scroll triggers. groupZ also has a 2-sec timeout (groupA has no timeout).
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   167
			 *   groupZ's timeout fires; we remove the triggers. The detach call finds the first window-scroll event with Y.ILG.p.fetch, which is groupA's. 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   168
			 *   groupA's trigger is removed and never fires, leaving images unfetched.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   169
			 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   170
			var wrappedFetch = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   171
				this.fetch();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   172
			};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   173
			this._triggers.push( Y.on(type, wrappedFetch, obj, this) );
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   174
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   175
			return this;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   176
		},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   177
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   178
		/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   179
		 * Adds a custom event trigger to the group.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   180
		 * @method addCustomTrigger
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   181
		 * @chainable
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   182
		 * @param {String} name  The name of the event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   183
		 * @param {Object} obj  The object on which to attach the event. <code>obj</code> is optional - by default the event is attached to the <code>Y</code> instance
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   184
		 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   185
		addCustomTrigger: function(name, obj) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   186
			if (! name) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   187
				return this;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   188
			}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   189
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   190
			Y.log('adding custom trigger to group: ' + this.get('name'), 'info', 'imageloader');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   191
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   192
			// see comment in addTrigger()
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   193
			var wrappedFetch = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   194
				this.fetch();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   195
			};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   196
			if (Y.Lang.isUndefined(obj)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   197
				this._triggers.push( Y.on(name, wrappedFetch, this) );
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   198
			}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   199
			else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   200
				this._triggers.push( obj.on(name, wrappedFetch, this) );
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   201
			}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   202
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   203
			return this;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   204
		},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   205
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   206
		/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   207
		 * Sets the window scroll and window resize triggers for any group that is fold-conditional (i.e., has a fold distance set).
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   208
		 * @method _setFoldTriggers
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   209
		 * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   210
		 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   211
		_setFoldTriggers: function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   212
			if (this._areFoldTriggersSet) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   213
				return;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   214
			}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   215
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   216
			Y.log('setting window scroll and resize events for group: ' + this.get('name'), 'info', 'imageloader');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   217
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   218
			var wrappedFoldCheck = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   219
				this._foldCheck();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   220
			};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   221
			this._triggers.push( Y.on('scroll', wrappedFoldCheck, window, this) );
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   222
			this._triggers.push( Y.on('resize', wrappedFoldCheck, window, this) );
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   223
			this._areFoldTriggersSet = true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   224
		},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   225
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   226
		/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   227
		 * Performs necessary setup at domready time.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   228
		 * Initiates time limit for group; executes the fold check for the images.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   229
		 * @method _onloadTasks
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   230
		 * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   231
		 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   232
		_onloadTasks: function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   233
			var timeLim = this.get('timeLimit');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   234
			if (timeLim && timeLim > 0) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   235
				Y.log('setting time limit of ' + timeLim + ' seconds for group: ' + this.get('name'), 'info', 'imageloader');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   236
				this._timeout = setTimeout(this._getFetchTimeout(), timeLim * 1000);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   237
			}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   238
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   239
			if (! Y.Lang.isUndefined(this.get('foldDistance'))) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   240
				this._foldCheck();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   241
			}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   242
		},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   243
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   244
		/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   245
		 * Returns the group's <code>fetch</code> method, with the proper closure, for use with <code>setTimeout</code>.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   246
		 * @method _getFetchTimeout
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   247
		 * @return {Function}  group's <code>fetch</code> method
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   248
		 * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   249
		 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   250
		_getFetchTimeout: function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   251
			var self = this;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   252
			return function() { self.fetch(); };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   253
		},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   254
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   255
		/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   256
		 * Registers an image with the group.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   257
		 * Arguments are passed through to a <code>Y.ImgLoadImgObj</code> constructor; see that class' attribute documentation for detailed information. "<code>domId</code>" is a required attribute.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   258
		 * @method registerImage
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   259
		 * @param {Object} *  A configuration object literal with attribute name/value pairs  (passed through to a <code>Y.ImgLoadImgObj</code> constructor)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   260
		 * @return {Object}  <code>Y.ImgLoadImgObj</code> that was registered
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   261
		 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   262
		registerImage: function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   263
			var domId = arguments[0].domId;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   264
			if (! domId) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   265
				return null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   266
			}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   267
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   268
			Y.log('adding image with id: ' + domId + ' to group: ' + this.get('name'), 'info', 'imageloader');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   269
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   270
			this._imgObjs[domId] = new Y.ImgLoadImgObj(arguments[0]);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   271
			return this._imgObjs[domId];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   272
		},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   273
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   274
		/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   275
		 * Displays the images in the group.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   276
		 * This method is called when a trigger fires or the time limit expires; it shouldn't be called externally, but is not private in the rare event that it needs to be called immediately.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   277
		 * @method fetch
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   278
		 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   279
		fetch: function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   280
			Y.log('Fetching images in group: "' + this.get('name') + '".', 'info', 'imageloader');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   281
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   282
			// done with the triggers
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   283
			this._clearTriggers();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   284
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   285
			// fetch whatever we need to by className
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   286
			this._fetchByClass();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   287
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   288
			// fetch registered images
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   289
			for (var id in this._imgObjs) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   290
				if (this._imgObjs.hasOwnProperty(id)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   291
					this._imgObjs[id].fetch();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   292
				}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   293
			}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   294
		},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   295
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   296
		/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   297
		 * Clears the timeout and all triggers associated with the group.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   298
		 * @method _clearTriggers
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   299
		 * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   300
		 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   301
		_clearTriggers: function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   302
			clearTimeout(this._timeout);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   303
			// detach all listeners
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   304
			for (var i=0, len = this._triggers.length; i < len; i++) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   305
				this._triggers[i].detach();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   306
			}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   307
		},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   308
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   309
		/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   310
		 * Checks the position of each image in the group. If any part of the image is within the specified distance (<code>foldDistance</code>) of the client viewport, the image is fetched immediately.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   311
		 * @method _foldCheck
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   312
		 * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   313
		 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   314
		_foldCheck: function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   315
			Y.log('Checking for images above the fold in group: "' + this.get('name') + '"', 'info', 'imageloader');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   316
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   317
			var allFetched = true,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   318
			    viewReg = Y.DOM.viewportRegion(),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   319
			    hLimit = viewReg.bottom + this.get('foldDistance'),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   320
					id, imgFetched, els, i, len;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   321
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   322
			// unless we've uncovered new frontiers, there's no need to continue
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   323
			if (hLimit <= this._maxKnownHLimit) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   324
				return;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   325
			}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   326
			this._maxKnownHLimit = hLimit;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   327
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   328
			for (id in this._imgObjs) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   329
				if (this._imgObjs.hasOwnProperty(id)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   330
					imgFetched = this._imgObjs[id].fetch(hLimit);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   331
					allFetched = allFetched && imgFetched;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   332
				}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   333
			}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   334
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   335
			// and by class
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   336
			if (this._className) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   337
				if (this._classImageEls === null) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   338
					// get all the relevant elements and store them
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   339
					this._classImageEls = [];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   340
					els = Y.all('.' + this._className);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   341
					els.each( function(node) { this._classImageEls.push( { el: node, y: node.getY(), fetched: false } ); }, this);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   342
				}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   343
				els = this._classImageEls;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   344
				for (i=0, len = els.length; i < len; i++) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   345
					if (els[i].fetched) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   346
						continue;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   347
					}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   348
					if (els[i].y && els[i].y <= hLimit) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   349
						els[i].el.removeClass(this._className);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   350
						els[i].fetched = true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   351
						Y.log('Image with id "' + els[i].el.get('id') + '" is within distance of the fold. Fetching image. (Image registered by class name with the group - may not have an id.)', 'info', 'imageloader');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   352
					}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   353
					else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   354
						allFetched = false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   355
					}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   356
				}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   357
			}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   358
			
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   359
			// if allFetched, remove listeners
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   360
			if (allFetched) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   361
				Y.log('All images fetched; removing listeners for group: "' + this.get('name') + '"', 'info', 'imageloader');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   362
				this._clearTriggers();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   363
			}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   364
		},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   365
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   366
		/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   367
		 * 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.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   368
		 * @method _fetchByClass
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   369
		 * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   370
		 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   371
		_fetchByClass: function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   372
			if (! this._className) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   373
				return;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   374
			}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   375
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   376
			Y.log('Fetching all images with class "' + this._className + '" in group "' + this.get('name') + '".', 'info', 'imageloader');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   377
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   378
			Y.all('.' + this._className).removeClass(this._className);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   379
		}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   380
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   381
	};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   382
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   383
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   384
	Y.extend(Y.ImgLoadGroup, Y.Base, groupProto);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   385
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   386
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   387
	//------------------------------------------------
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   388
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   389
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   390
	/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   391
	 * Image objects to be registered with the groups
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   392
	 * @class ImgLoadImgObj
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   393
	 * @extends Base
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   394
	 * @constructor
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   395
	 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   396
	Y.ImgLoadImgObj = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   397
		Y.ImgLoadImgObj.superclass.constructor.apply(this, arguments);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   398
		this._init();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   399
	};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   400
		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   401
	Y.ImgLoadImgObj.NAME = 'imgLoadImgObj';
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   402
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   403
	Y.ImgLoadImgObj.ATTRS = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   404
		/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   405
		 * HTML DOM id of the image element.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   406
		 * @attribute domId
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   407
		 * @type String
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   408
		 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   409
		domId: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   410
			value: null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   411
			writeOnce: true
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   412
		},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   413
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   414
		/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   415
		 * Background URL for the image.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   416
		 * For an image whose URL is specified by "<code>background-image</code>" in the element's style.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   417
		 * @attribute bgUrl
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   418
		 * @type String
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   419
		 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   420
		bgUrl: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   421
			value: null
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   422
		},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   423
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   424
		/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   425
		 * Source URL for the image.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   426
		 * For an image whose URL is specified by a "<code>src</code>" attribute in the DOM element.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   427
		 * @attribute srcUrl
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   428
		 * @type String
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   429
		 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   430
		srcUrl: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   431
			value: null
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   432
		},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   433
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   434
		/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   435
		 * Pixel width of the image. Will be set as a <code>width</code> attribute on the DOM element after the image is fetched.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   436
		 * Defaults to the natural width of the image (no <code>width</code> attribute will be set).
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   437
		 * Usually only used with src images.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   438
		 * @attribute width
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   439
		 * @type Int
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   440
		 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   441
		width: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   442
			value: null
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   443
		},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   444
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   445
		/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   446
		 * Pixel height of the image. Will be set as a <code>height</code> attribute on the DOM element after the image is fetched.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   447
		 * Defaults to the natural height of the image (no <code>height</code> attribute will be set).
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   448
		 * Usually only used with src images.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   449
		 * @attribute height
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   450
		 * @type Int
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   451
		 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   452
		height: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   453
			value: null
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   454
		},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   455
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   456
		/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   457
		 * Whether the image's <code>style.visibility</code> should be set to <code>visible</code> after the image is fetched.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   458
		 * Used when setting images as <code>visibility:hidden</code> prior to image fetching.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   459
		 * @attribute setVisible
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   460
		 * @type Boolean
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   461
		 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   462
		setVisible: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   463
			value: false
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   464
		},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   465
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   466
		/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   467
		 * Whether the image is a PNG.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   468
		 * PNG images get special treatment in that the URL is specified through AlphaImageLoader for IE, versions 6 and earlier.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   469
		 * Only used with background images.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   470
		 * @attribute isPng
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   471
		 * @type Boolean
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   472
		 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   473
		isPng: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   474
			value: false
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   475
		},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   476
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   477
		/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   478
		 * AlphaImageLoader <code>sizingMethod</code> property to be set for the image.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   479
		 * Only set if <code>isPng</code> value for this image is set to <code>true</code>.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   480
		 * Defaults to <code>scale</code>.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   481
		 * @attribute sizingMethod
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   482
		 * @type String
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   483
		 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   484
		sizingMethod: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   485
			value: 'scale'
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   486
		},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   487
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   488
		/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   489
		 * AlphaImageLoader <code>enabled</code> property to be set for the image.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   490
		 * Only set if <code>isPng</code> value for this image is set to <code>true</code>.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   491
		 * Defaults to <code>true</code>.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   492
		 * @attribute enabled
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   493
		 * @type String
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   494
		 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   495
		enabled: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   496
			value: 'true'
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   497
		}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   498
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   499
	};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   500
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   501
	var imgProto = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   502
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   503
		/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   504
		 * Initialize all private members needed for the group.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   505
		 * @method _init
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   506
		 * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   507
		 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   508
		_init: function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   509
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   510
			/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   511
			 * Whether this image has already been fetched.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   512
			 * In the case of fold-conditional groups, images won't be fetched twice.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   513
			 * @property _fetched
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   514
			 * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   515
			 * @type Boolean
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   516
			 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   517
			this._fetched = false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   518
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   519
			/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   520
			 * The Node object returned from <code>Y.get</code>, to avoid repeat calls to access the DOM.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   521
			 * @property _imgEl
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   522
			 * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   523
			 * @type Object
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   524
			 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   525
			this._imgEl = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   526
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   527
			/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   528
			 * The vertical position returned from <code>getY</code>, to avoid repeat calls to access the DOM.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   529
			 * The Y position is checked only for images registered with fold-conditional groups. The position is checked first at page load (domready)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   530
			 *   and this caching enhancement assumes that the image's vertical position won't change after that first check.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   531
			 * @property _yPos
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   532
			 * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   533
			 * @type Int
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   534
			 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   535
			this._yPos = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   536
		},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   537
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   538
		/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   539
		 * Displays the image; puts the URL into the DOM.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   540
		 * This method shouldn't be called externally, but is not private in the rare event that it needs to be called immediately.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   541
		 * @method fetch
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   542
		 * @param {Int} withinY  The pixel distance from the top of the page, for which if the image lies within, it will be fetched. Undefined indicates that no check should be made, and the image should always be fetched
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   543
		 * @return {Boolean}  Whether the image has been fetched (either during this execution or previously)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   544
		 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   545
		fetch: function(withinY) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   546
			if (this._fetched) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   547
				return true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   548
			}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   549
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   550
			var el = this._getImgEl(),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   551
			    yPos;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   552
			if (! el) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   553
				return false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   554
			}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   555
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   556
			if (withinY) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   557
				// need a distance check
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   558
				yPos = this._getYPos();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   559
				if (! yPos || yPos > withinY) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   560
					return false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   561
				}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   562
				Y.log('Image with id "' + this.get('domId') + '" is within distance of the fold. Fetching image.', 'info', 'imageloader');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   563
			}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   564
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   565
			Y.log('Fetching image with id "' + this.get('domId') + '".', 'info', 'imageloader');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   566
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   567
			// apply url
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   568
			if (this.get('bgUrl') !== null) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   569
				// bg url
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   570
				if (this.get('isPng') && Y.UA.ie && Y.UA.ie <= 6) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   571
					// png for which to apply AlphaImageLoader
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   572
					el.setStyle('filter', 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + this.get('url') + '", sizingMethod="' + this.get('sizingMethod') + '", enabled="' + this.get('enabled') + '")');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   573
				}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   574
				else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   575
					// regular bg image
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   576
					el.setStyle('backgroundImage', "url('" + this.get('bgUrl') + "')");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   577
				}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   578
			}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   579
			else if (this.get('srcUrl') !== null) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   580
				// regular src image
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   581
				el.setAttribute('src', this.get('srcUrl'));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   582
			}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   583
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   584
			// apply attributes
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   585
			if (this.get('setVisible')) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   586
				el.setStyle('visibility', 'visible');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   587
			}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   588
			if (this.get('width')) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   589
				el.setAttribute('width', this.get('width'));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   590
			}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   591
			if (this.get('height')) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   592
				el.setAttribute('height', this.get('height'));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   593
			}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   594
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   595
			this._fetched = true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   596
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   597
			return true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   598
		},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   599
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   600
		/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   601
		 * Gets the object (as a <code>Y.Node</code>) of the DOM element indicated by "<code>domId</code>".
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   602
		 * @method _getImgEl
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   603
		 * @returns {Object} DOM element of the image as a <code>Y.Node</code> object
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   604
		 * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   605
		 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   606
		_getImgEl: function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   607
			if (this._imgEl === null) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   608
				this._imgEl = Y.get('#' + this.get('domId'));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   609
			}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   610
			return this._imgEl;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   611
		},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   612
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   613
		/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   614
		 * Gets the Y position of the node in page coordinates.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   615
		 * Expects that the page-coordinate position of the image won't change.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   616
		 * @method _getYPos
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   617
		 * @returns {Object} The Y position of the image
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   618
		 * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   619
		 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   620
		_getYPos: function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   621
			if (this._yPos === null) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   622
				this._yPos = this._getImgEl().getY();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   623
			}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   624
			return this._yPos;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   625
		}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   626
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   627
	};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   628
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   629
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   630
	Y.extend(Y.ImgLoadImgObj, Y.Base, imgProto);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   631
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   632
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   633
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   634
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   635
}, '3.0.0' ,{requires:['base-base', 'node-style', 'node-screen']});