SHOW:
|
|
- or go back to the newest paste.
1 | cinematic : function(__SELF, SETTINGS) | |
2 | { | |
3 | var regName = 'app-cinematic'; | |
4 | ||
5 | - | /* |
5 | + | |
6 | - | based on .w_10 |
6 | + | |
7 | - | */ |
7 | + | |
8 | { | |
9 | bioscoop : null, // id of target | |
10 | autoplay : | |
11 | { | |
12 | enabled : false, | |
13 | interval : 10, | |
14 | showNext : true, | |
15 | showPlay : true, | |
16 | showPrev : true, | |
17 | showTimer : true, | |
18 | }, | |
19 | thumbs : | |
20 | { | |
21 | preloadAllBeforeShow : true, | |
22 | callBackAfterShow : function() {}, | |
23 | asCssBackgroundImage : true // otherwise img-tag | |
24 | - | preloadAllBeforeShow : false, |
24 | + | |
25 | loader : | |
26 | { | |
27 | lines : 16, | |
28 | length : 50, | |
29 | width : 1, | |
30 | radius : 40, | |
31 | rotate : 0, | |
32 | color : '#00FF1A', | |
33 | speed : 1.9, | |
34 | trail : 100, | |
35 | shadow : false, | |
36 | hwaccel : true, | |
37 | className : 'ddlsl', | |
38 | zIndex : -1,//2e9, | |
39 | top : 0, | |
40 | left : 'auto' | |
41 | } | |
42 | }, | |
43 | SETTINGS | |
44 | ); | |
45 | ||
46 | var log = | |
47 | { | |
48 | n : function(t, l) { $.tri4m.log('tri4m.app.cinematic: ' + t, l); }, | |
49 | t : function(t, l) { log.n('trigger: ' + t, l); }, | |
50 | t107 : function(t, l) { log.t('preload-cinematic-thumb: ' + t, l); }, | |
51 | - | n : function(t, l) |
51 | + | t108 : function(t, l) { log.t('preload-cinematic-image: ' + t, l); }, |
52 | t109 : function(t, l) { log.t('-- event: ' + t, l); } | |
53 | - | $.tri4m.log('tri4m.app.cinematic: ' + t, l); |
53 | + | |
54 | ||
55 | - | t : function(t, l) |
55 | + | |
56 | { | |
57 | - | log.n('trigger: ' + t, l); |
57 | + | var _queue = [], _removed = [], _element = element, |
58 | _isset = $.tri4m.global.__INSTANCE_REGISTRY__.isset(element, regName), | |
59 | - | t107 : function(t, l) |
59 | + | |
60 | _ctrl = | |
61 | - | log.t('preload-cinematic-thumb: ' + t, l); |
61 | + | |
62 | onActivation : function(scrollrollerItem) | |
63 | - | t108 : function(t, l) |
63 | + | |
64 | scrollrollerItem.parent().data('tri4m.ui.scrollroller.listitem.state', {ai : scrollrollerItem}); | |
65 | - | log.t('preload-cinematic-image: ' + t, l); |
65 | + | |
66 | } | |
67 | }; | |
68 | ||
69 | _c = | |
70 | { | |
71 | - | var _queue = [], |
71 | + | |
72 | - | _element = element, |
72 | + | |
73 | var p = {width: 0, height: 0}; | |
74 | ||
75 | if(t.innerWidth() > 0) | |
76 | { | |
77 | p.width = t.innerWidth(); | |
78 | } | |
79 | else | |
80 | if(t.innerWidth() === 0 | |
81 | && t.parent().innerWidth() > 0) | |
82 | - | pause : function() |
82 | + | |
83 | p.width = t.parent().innerWidth(); | |
84 | } | |
85 | - | play : function() |
85 | + | |
86 | { | |
87 | p.width = $(window).width(); | |
88 | - | next : function(scrollroller) |
88 | + | |
89 | ||
90 | - | scrollroller.trigger('tri4m.ui.scrollroller.container.activateNextOrFirst', [_ctrl.onActivation]); |
90 | + | |
91 | { | |
92 | - | prev : function(scrollroller) |
92 | + | |
93 | } | |
94 | - | scrollroller.trigger('tri4m.ui.scrollroller.container.activateNextOrFirst', [_ctrl.onActivation]); |
94 | + | |
95 | if(t.innerHeight() === 0 | |
96 | && t.parent().innerHeight() > 0) | |
97 | { | |
98 | p.height = t.parent().innerHeight(); | |
99 | } | |
100 | else | |
101 | { | |
102 | p.height = $(window).height(); | |
103 | } | |
104 | ||
105 | return p; | |
106 | }, | |
107 | i : function(image, target) | |
108 | { | |
109 | - | if(t.innerWidth() === 0 && t.parent().innerWidth() > 0) |
109 | + | |
110 | ||
111 | if(typeof image !== 'object' | |
112 | || typeof image.width === 'undefined' | |
113 | || typeof image.height === 'undefined') return p; | |
114 | ||
115 | var iw = image.width, ih = image.height, ir = ih / iw | |
116 | w = _c.o(target), ww = w.width, wh = w.height, wr = wh / ww; | |
117 | ||
118 | switch(true) | |
119 | { | |
120 | case (wr > ir): | |
121 | p.width = Math.round(wh/ir); | |
122 | p.height = wh; | |
123 | break; | |
124 | - | if(t.innerHeight() === 0 && t.parent().innerHeight() > 0) |
124 | + | |
125 | p.width = ww; | |
126 | p.height = wh; | |
127 | break; | |
128 | case (ir > 1 || ir === 1): | |
129 | var j = wh / ih; | |
130 | p.width = Math.round(iw * j); | |
131 | p.height = wh; | |
132 | break; | |
133 | - | //p.width = (typeof t === 'undefined' || t.innerWidth() === 0) ? $(window).width() : t.innerWidth(); |
133 | + | |
134 | - | //p.height = (typeof t === 'undefined' || t.innerHeight() === 0) ? $(window).height() : t.innerHeight(); |
134 | + | |
135 | p.height = Math.round(ww * ir); | |
136 | break; | |
137 | } | |
138 | ||
139 | - | //alert(target.attr('class')); |
139 | + | |
140 | p.top = Math.round((wh - p.height) / 2); | |
141 | ||
142 | return p; | |
143 | } | |
144 | }; | |
145 | ||
146 | - | var iw = image.width; |
146 | + | |
147 | - | var ih = image.height; |
147 | + | |
148 | - | var ir = ih / iw; |
148 | + | __isw : false, |
149 | window : function() | |
150 | - | var w = _c.o(target); |
150 | + | |
151 | - | var ww = w.width; |
151 | + | |
152 | - | var wh = w.height; |
152 | + | |
153 | - | var wr = wh / ww; |
153 | + | |
154 | clearInterval(wait); | |
155 | _j.__isw = false; | |
156 | d.find('img:visible') | |
157 | .each(function() | |
158 | { | |
159 | $(this).animate(_c.i({width : $(this).width(), height : $(this).height()}, d), 500, 'easeOutCubic'); | |
160 | }); | |
161 | }, 600); | |
162 | ||
163 | if(true === _j.__isw) | |
164 | clearInterval(wait); | |
165 | ||
166 | _j.__isw = true; | |
167 | } | |
168 | } | |
169 | /* | |
170 | ||
171 | */ | |
172 | _update = function() | |
173 | { | |
174 | var j = _reg.j, __i = 'li', __a = 'a', | |
175 | ba = _bnd.a.toValueObject(), bi = _bnd.i.toValueObject(), bt = _bnd.t.toValueObject(); | |
176 | ||
177 | j.register('a', $(__a, j.get('l')), false); | |
178 | j.register('i', $(__i, j.get('l')), false); | |
179 | j.get('a').addClass('tri4m-app-cinematic-resourcelink').hide(); | |
180 | j.get('i').addClass('tri4m-app-cinematic-resourceitem'); | |
181 | ||
182 | var a = j.get('a'), i = j.get('i'), _a = '<a />'; | |
183 | ||
184 | i.each(function(index) | |
185 | - | isw : false, |
185 | + | |
186 | for(var i in bi) $(this).unbind(i).bind(i, bi[i]); | |
187 | var it = $(this).find(__a + '.tri4m-app-cinematic-resourcethumb').eq(0); | |
188 | if(it.length === 0) $(this).append($(_a).addClass('tri4m-app-cinematic-resourcethumb').hide()); | |
189 | }); | |
190 | ||
191 | j.register('t', $(__a + '.tri4m-app-cinematic-resourcethumb', j.get('i')), false); | |
192 | - | _j.isw = false; |
192 | + | |
193 | ||
194 | a.each(function(index) | |
195 | { | |
196 | for(var i in ba) $(this).unbind(i).bind(i, ba[i]); | |
197 | $(this).addClass('j.a'); | |
198 | }); | |
199 | ||
200 | - | if(true === _j.isw) |
200 | + | |
201 | { | |
202 | for(var i in bt) $(this).unbind(i).bind(i, bt[i]); | |
203 | - | _j.isw = true; |
203 | + | |
204 | var ds = $(this).data(_reg.n.get('dts')), dd = {}; dd.i = index; | |
205 | ||
206 | if(typeof ds === 'undefined') | |
207 | { | |
208 | $(this).data(_reg.n.get('dts'), dd); | |
209 | ds = dd; | |
210 | } | |
211 | ||
212 | if(typeof ds.qs === 'undefined') | |
213 | { | |
214 | $(this).trigger('tri4m.app.cinematic.thumblink.preloadImage'); | |
215 | } | |
216 | else | |
217 | { | |
218 | $(this).addClass('status_' + ds.qs.status); | |
219 | } | |
220 | ||
221 | $(this).addClass('j.t'); | |
222 | }); | |
223 | ||
224 | j.get('l').addClass('j.l'); | |
225 | - | if(it.length === 0) |
225 | + | |
226 | - | $(this).append($(_a).addClass('tri4m-app-cinematic-resourcethumb').hide()); |
226 | + | |
227 | _dom = function() | |
228 | - | $(this).addClass('j.i'); |
228 | + | |
229 | var j = _reg.j, _d = '<div />', _l = '<ul />', | |
230 | __d = 'div', __i = 'li', __a = 'a', _a = '<a />', __l = 'ul', | |
231 | d = $('#' + __settings.bioscoop).find(__d).eq(0), | |
232 | l = _element.find(__l).eq(0); // 0: cur is ul | |
233 | ||
234 | j.register('b', $('#' + __settings.bioscoop), true); | |
235 | j.register('d', ((d.length === 0) ? $(_d).appendTo(j.get('b')) : d), true); | |
236 | j.register('l', ((l.length === 0) ? $(_element).wrap(_d) : l), true); | |
237 | j.register('c', j.get('l').parent()); | |
238 | ||
239 | j.get('l').addClass('tri4m-app-cinematic-list'); | |
240 | j.get('b').addClass('tri4m-app-cinematic-bioscoop'); | |
241 | j.get('d').addClass('tri4m-app-cinematic-decorontwerp') | |
242 | .css({overflow: 'hidden'}) | |
243 | .data(_reg.n.get('dcs'), { initialized : false }); | |
244 | j.get('c').addClass('tri4m-ui-scrollroller-x tri4m-app-gallery-thumbs tri4m-app-cinematics') | |
245 | //j.get('c').addClass('tri4m-ui-scrollroller-x tri4m-app-cinematics') | |
246 | - | var ds = $(this).data(_reg.n.get('dts')); |
246 | + | |
247 | - | var dv = { i : index }; |
247 | + | |
248 | - | if(!ds) |
248 | + | |
249 | easing : | |
250 | - | dv.created = false; |
250 | + | |
251 | - | $(this).data(_reg.n.get('dts'), dv).trigger('tri4m.app.cinematic.thumblink.preloadImage'); |
251 | + | |
252 | callback : | |
253 | { | |
254 | item : | |
255 | - | $(this).data(_reg.n.get('dts'), dv); |
255 | + | |
256 | deactivate : function(e) | |
257 | { | |
258 | $(this).trigger('tri4m.ui.scrollroller.container.activateFirst'); | |
259 | } | |
260 | } | |
261 | } | |
262 | } | |
263 | }); | |
264 | ||
265 | }; | |
266 | ||
267 | (function() | |
268 | - | var j = _reg.j, _d = '<div />', _l = '<ul />', __d = 'div', __i = 'li', __a = 'a', _a = '<a />', __l = 'ul'; |
268 | + | |
269 | - | var d = $('#' + __settings.bioscoop).find(__d).eq(0); |
269 | + | |
270 | - | var l = _element.find(__l).eq(0); // 0: cur is ul |
270 | + | |
271 | _reg.j = new $.tri4m.global.__CLASS__.__VARIABLE__.__REGISTRY__(); | |
272 | _reg.n = new $.tri4m.global.__CLASS__.__VARIABLE__.__REGISTRY__(); | |
273 | _bnd.a = new $.tri4m.global.__CLASS__.__VARIABLE__.__REGISTRY__(); | |
274 | _bnd.t = new $.tri4m.global.__CLASS__.__VARIABLE__.__REGISTRY__(); | |
275 | _bnd.i = new $.tri4m.global.__CLASS__.__VARIABLE__.__REGISTRY__(); | |
276 | _bnd.l = new $.tri4m.global.__CLASS__.__VARIABLE__.__REGISTRY__(); | |
277 | _bnd.r = new $.tri4m.global.__CLASS__.__VARIABLE__.__REGISTRY__(); | |
278 | ||
279 | _reg.n.register('dcs', 'tri4m.app.cinematic.state'); | |
280 | _reg.n.register('dts', 'tri4m.app.cinematic.thumbstate'); | |
281 | ||
282 | _bnd.i | |
283 | .register('click', function() | |
284 | { | |
285 | log.t109('tri4m.app.cinematic.listitem.click', 1); | |
286 | $(this).trigger('tri4m.ui.scrollroller.listitem.activate', [_ctrl.onActivation]); | |
287 | }); | |
288 | ||
289 | _bnd.l | |
290 | .register('tri4m.app.cinematic.container.insertItemAfter', function(e, i, c) | |
291 | { | |
292 | log.t109('tri4m.app.cinematic.container.insertItemAfter', 1); | |
293 | }, true) | |
294 | .register('tri4m.app.cinematic.container.insertItemBefore', function(e, i, c) | |
295 | { | |
296 | log.t109('tri4m.app.cinematic.container.insertItemBefore', 1); | |
297 | }, true) | |
298 | .register('tri4m.app.cinematic.container.appendItem', function(e, i, item, c) | |
299 | { | |
300 | log.t109('tri4m.app.cinematic.container.appendItem', 1); | |
301 | alert('insert cinematic'); | |
302 | }, true) | |
303 | .register('tri4m.app.cinematic.container.appendItems', function(e, i, itemArray, c) | |
304 | { | |
305 | log.t109('tri4m.app.cinematic.container.prependItems', 1); | |
306 | }, true) | |
307 | .register('tri4m.app.cinematic.container.prependItem', function(e, i, item, c) | |
308 | { | |
309 | log.t109('tri4m.app.cinematic.container.prependItems', 1); | |
310 | }, true) | |
311 | .register('tri4m.app.cinematic.container.prependItems', function(e, i, itemArray, c) | |
312 | { | |
313 | log.t109('tri4m.app.cinematic.container.prependItems', 1); | |
314 | }, true) | |
315 | .register('tri4m.app.cinematic.container.removeItem', function(e, i, c) | |
316 | { | |
317 | log.t109('tri4m.app.cinematic.container.removeItem', 1); | |
318 | var t = $(e.target); | |
319 | t.trigger('click'); | |
320 | - | _bnd.i.register('click', function() |
320 | + | t.trigger('tri4m.ui.scrollroller.container.removeItem', [i, function() |
321 | { | |
322 | _ctrl.next(_reg.j.get('l')); | |
323 | }]); | |
324 | ||
325 | - | _bnd.l.register('tri4m.app.cinematic.container.insertItemAfter', function(e, i, c) |
325 | + | |
326 | .register('tri4m.app.cinematic.container.pause', function(e, c) | |
327 | { | |
328 | - | .register('tri4m.app.cinematic.insertItemBefore', function(e, i, c) |
328 | + | log.t109('tri4m.app.cinematic.container.pause', 1); |
329 | ||
330 | }, true) | |
331 | - | .register('tri4m.app.cinematic.appendItem', function(e, i, item, c) |
331 | + | .register('tri4m.app.cinematic.container.play', function(e, c) |
332 | { | |
333 | log.t109('tri4m.app.cinematic.container.play', 1); | |
334 | ||
335 | - | .register('tri4m.app.cinematic.appendItems', function(e, i, itemArray, c) |
335 | + | |
336 | .register('tri4m.app.cinematic.container.stop', function(e, c) | |
337 | { | |
338 | - | .register('tri4m.app.cinematic.prependItem', function(e, i, item, c) |
338 | + | log.t109('tri4m.app.cinematic.container.stop', 1); |
339 | ||
340 | }, true) | |
341 | - | .register('tri4m.app.cinematic.prependItems', function(e, i, itemArray, c) |
341 | + | .register('tri4m.app.cinematic.container.nextItem', function(e, c) |
342 | { | |
343 | log.t109('tri4m.app.cinematic.container.nextItem', 1); | |
344 | _reg.j.get('l').trigger('tri4m.ui.scrollroller.container.activateNextOrFirst', [_ctrl.onActivation]); | |
345 | - | _bnd.t.register('tri4m.app.cinematic.thumblink.preloadImage', function(e) |
345 | + | |
346 | .register('tri4m.app.cinematic.container.prevItem', function(e, c) | |
347 | { | |
348 | log.t109('tri4m.app.cinematic.container.prevItem', 1); | |
349 | _reg.j.get('l').trigger('tri4m.ui.scrollroller.container.activatePrevOrLast', [_ctrl.onActivation]); | |
350 | }, true); | |
351 | ||
352 | _bnd.t | |
353 | .register('tri4m.app.cinematic.thumblink.preloadImage', function(e) | |
354 | { | |
355 | log.t109('tri4m.app.cinematic.thumblink.preloadImage', 1); | |
356 | - | i = t.data(_reg.n.get('dts')).i, href = $('a.tri4m-app-cinematic-resourcelink', p).attr('href'); |
356 | + | |
357 | { | |
358 | $(this).parent().prepend('<span>where is ILLI?</span>'); | |
359 | log.t107('ILLI is undefined (required for thumb-url)', 2); | |
360 | return; | |
361 | } | |
362 | ||
363 | ||
364 | var t = $(this), p = t.parent().css({opacity : 0}), | |
365 | i = t.data(_reg.n.get('dts')).i, href = $('a.tri4m-app-cinematic-resourcelink', p).attr('href'), | |
366 | ds = t.data(_reg.n.get('dts')); | |
367 | ||
368 | if(typeof ds.qs !== 'undefined') | |
369 | return; | |
370 | ||
371 | log.t107('init ' + i); | |
372 | ||
373 | if(typeof _queue[i] !== 'undefined' && _queue[i].status === true) | |
374 | { | |
375 | log.t107('-- nothing to do ' + i); | |
376 | return; | |
377 | } | |
378 | ||
379 | log.t107('push to queue ' + i); | |
380 | ||
381 | _queue[i] = | |
382 | { | |
383 | status : false, | |
384 | error : false, | |
385 | append : false, | |
386 | kicked : false, | |
387 | lookup : null, | |
388 | islooking : false, | |
389 | attempt : 0, | |
390 | thumb : t, | |
391 | parent : p, | |
392 | src : null, | |
393 | image : $('<img />').addClass('tri4m-app-cinematic-thumbnail').css({opacity : 0}) | |
394 | }; | |
395 | ||
396 | ds.qs = _queue[i]; | |
397 | t.data(_reg.n.get('dts'), ds); | |
398 | ||
399 | var islast = (_queue.length === _reg.j.get('t').length); | |
400 | ||
401 | if(true === islast) log.t107('is last ' + i); | |
402 | ||
403 | var dequeue = function() | |
404 | { | |
405 | log.t107('try dequeue: caller is ' + i); | |
406 | if(true === __settings.thumbs.preloadAllBeforeShow) | |
407 | { | |
408 | if(false === islast) | |
409 | - | log.t107('try again'); |
409 | + | |
410 | - | dequeue(); |
410 | + | |
411 | - | }, 50); |
411 | + | |
412 | ||
413 | var success = true; | |
414 | ||
415 | for(var idx in _queue) | |
416 | if(_queue[idx].status === false) | |
417 | success = false; | |
418 | ||
419 | if(false === success) | |
420 | { | |
421 | log.t107('try dequeue: success = false'); | |
422 | var refetch = setInterval(function() | |
423 | { | |
424 | clearInterval(refetch); | |
425 | ||
426 | log.t107('try again; attempt = ' + _queue[i].attempt ); | |
427 | //dequeue(); | |
428 | }, 500); | |
429 | //return; | |
430 | } | |
431 | } | |
432 | ||
433 | log.t107('try dequeue: start iteration'); | |
434 | ||
435 | for(var idx in _queue) | |
436 | { | |
437 | if(true === _queue[idx].error) | |
438 | { | |
439 | log.t107('try dequeue: error: ' + src, 3); | |
440 | log.t107('try dequeue: --continue'); | |
441 | continue; | |
442 | } | |
443 | ||
444 | (function(curIndex, caller) | |
445 | - | if(false === __settings.thumbs.preloadAllBeforeShow |
445 | + | |
446 | - | && _queue[curIndex].status === false) |
446 | + | |
447 | ||
448 | - | log.t107('try dequeue: waiting: preloadAllBeforeShow = false, status = '+ _queue[curIndex].status +', try = ' + _queue[curIndex].attempt + ' of ' + _queue.length + ', index = ' + curIndex + ', caller = ' + caller); |
448 | + | |
449 | return; | |
450 | ||
451 | _queue[curIndex].lookup = setInterval(function() | |
452 | - | log.t107('try dequeue: waiting: -- preloadAllBeforeShow = false, status = '+ _queue[curIndex].status +', max.attempts = '+_queue.length+', index = ' + curIndex + ', caller = ' + caller); |
452 | + | |
453 | - | log.t107('try dequeue: waiting: -- index ' + curIndex + ' was kicked from #list (idle flood), caller = ' + caller + ' in try = ' + _queue[curIndex].attempt + ' of ' + _queue.length); |
453 | + | |
454 | ||
455 | if(true === _queue[curIndex].kicked) | |
456 | { | |
457 | log.t107('try dequeue: waiting: -- -- index ' + curIndex + ' already kicked'); | |
458 | clearInterval(_queue[curIndex].lookup); | |
459 | return; | |
460 | } | |
461 | ||
462 | //if(false === __settings.thumbs.preloadAllBeforeShow | |
463 | //&& _queue[curIndex].status === false) | |
464 | if(_queue[curIndex].status === false) | |
465 | { | |
466 | log.t107('try dequeue: waiting: preloadAllBeforeShow = ' + __settings.thumbs.preloadAllBeforeShow + ', status = '+ _queue[curIndex].status +', try = ' + _queue[curIndex].attempt + ' of ' + _queue.length + ', index = ' + curIndex + ', caller = ' + caller); | |
467 | ||
468 | if(_queue[curIndex].attempt > _queue.length || _queue[curIndex].attempt === _queue.length) | |
469 | { | |
470 | log.t107('try dequeue: waiting: -- preloadAllBeforeShow = = ' + __settings.thumbs.preloadAllBeforeShow + ', status = '+ _queue[curIndex].status +', max.attempts = '+_queue.length+', index = ' + curIndex + ', caller = ' + caller); | |
471 | - | _queue[curIndex].parent.animate({opacity : 1}, 500); |
471 | + | log.t107('try dequeue: waiting: -- index ' + curIndex + ' was kicked from #list (idle flood), caller = ' + caller + ' in try = ' + _queue[curIndex].attempt + ' of ' + _queue.length, 3); |
472 | _queue[curIndex].kicked = true; | |
473 | _queue[curIndex].error = true; | |
474 | clearInterval(_queue[curIndex].lookup); | |
475 | _removed[curIndex] = _queue[curIndex]; | |
476 | //_queue[curIndex].parent.remove(); | |
477 | - | _queue[curIndex].image.animate({opacity : 1}, 500); |
477 | + | //_update(); |
478 | _reg.j.get('l').trigger('tri4m.app.cinematic.container.removeItem', [curIndex]); | |
479 | } | |
480 | ||
481 | _queue[curIndex].attempt++; | |
482 | ||
483 | return; | |
484 | } | |
485 | - | }, curIndex * 500); // every thumber will check every 500ms the full thumb queue! |
485 | + | |
486 | clearInterval(_queue[curIndex].lookup); | |
487 | ||
488 | if(true === _queue[curIndex].append) | |
489 | return; | |
490 | ||
491 | var show = function() | |
492 | { | |
493 | if(typeof ILLI === 'undefined' | |
494 | || false === __settings.thumbs.preloadAllBeforeShow) | |
495 | { | |
496 | _queue[curIndex].parent.animate({opacity : 1}, 500); | |
497 | return; | |
498 | } | |
499 | ||
500 | ILLI.fn.idle(_queue[curIndex].parent, curIndex * 100, function() | |
501 | { | |
502 | _queue[curIndex].parent.animate({opacity : 1}, 500); | |
503 | }); | |
504 | }; | |
505 | ||
506 | if(true === __settings.thumbs.asCssBackgroundImage) | |
507 | { | |
508 | log.t107('try dequeue: asCssBackgroundImage = true ' + curIndex); | |
509 | _queue[curIndex].parent.css({'background-image' : 'url("' + _queue[curIndex].src + '")'}); | |
510 | show(); | |
511 | } | |
512 | else | |
513 | { | |
514 | log.t107('try dequeue: asCssBackgroundImage = false ' + curIndex); | |
515 | _queue[curIndex].parent.prepend(_queue[curIndex].image); | |
516 | show(); | |
517 | } | |
518 | ||
519 | _queue[curIndex].append = true; | |
520 | _queue[curIndex].status = true; | |
521 | ||
522 | var ds = _queue[curIndex].thumb.data(_reg.n.get('dts')); | |
523 | ds.qs = _queue[curIndex]; | |
524 | _queue[curIndex].thumb.data(_reg.n.get('dts'), ds); | |
525 | _queue[curIndex].thumb.addClass('status_' + _queue[curIndex].status); | |
526 | ||
527 | ||
528 | //if(islast === true) __settings.thumbs.callBackAfterShow(); | |
529 | ||
530 | }, 200); | |
531 | })(idx, i); | |
532 | } | |
533 | - | // create thumb url from img-a-href |
533 | + | |
534 | ||
535 | var load = function(src) | |
536 | { | |
537 | log.t107('try load: ' + src); | |
538 | ||
539 | var IMG = new Image(); | |
540 | ||
541 | $(IMG) | |
542 | .addClass('dummy') | |
543 | .hide() | |
544 | .load(function() | |
545 | { | |
546 | log.t107('try load: complete: ' + src); | |
547 | - | var src = $(this).attr('href'); |
547 | + | |
548 | $(IMG).remove(); | |
549 | - | /* |
549 | + | |
550 | - | if(_reg.j.get('d').children('div.hidden').length === 0) |
550 | + | |
551 | { | |
552 | - | var hidden = $('<div />').hide().addClass('hidden'); |
552 | + | |
553 | - | _reg.j.get('d').prepend(hidden); |
553 | + | |
554 | _queue[i].image.attr('src', src); | |
555 | - | */ |
555 | + | |
556 | _queue[i].status = true; | |
557 | dequeue(); | |
558 | ||
559 | }, 100); | |
560 | ||
561 | - | log.t108('try load: unknown source ' + src); |
561 | + | |
562 | - | var img = $('<img />').css({position: 'absolute'}).addClass('tri4m-app-cinematic-image').css('position', 'absolute'); |
562 | + | |
563 | .error(function() | |
564 | - | var IMG = new Image(); |
564 | + | |
565 | - | $(IMG) |
565 | + | |
566 | - | .hide() |
566 | + | |
567 | _queue[i].image.attr('src', src); | |
568 | _queue[i].src = src; | |
569 | _queue[i].status = true; | |
570 | _queue[i].error = true; | |
571 | ||
572 | dequeue(); | |
573 | ||
574 | IMG.onerror = function(){}; | |
575 | }); | |
576 | ||
577 | $(IMG).attr('src', src); | |
578 | t.append(IMG); | |
579 | }; | |
580 | ||
581 | t.idle = setInterval(function() | |
582 | { | |
583 | clearInterval(t.idle); | |
584 | log.t107('try get thumb for ' + i + ': ' + href); | |
585 | ||
586 | // create thumb url from img-a-href | |
587 | ILLI.router.create.thumb(href, p.height(), p.width(), function(url) | |
588 | { | |
589 | log.t107('thumb for ' + i + ' is ' + url); | |
590 | t.attr('href', url); | |
591 | load(url); | |
592 | }); | |
593 | }, 50); | |
594 | }); | |
595 | ||
596 | _bnd.a.register('tri4m.app.cinematic.reslink.preloadImage', function() | |
597 | { | |
598 | log.t109('tri4m.app.cinematic.reslink.preloadImage', 1); | |
599 | log.t108('init ' + src); | |
600 | ||
601 | var src = $(this).attr('href'); | |
602 | var load = function() | |
603 | - | log.t108('try load: bioscoop has no images -- construct squence'); |
603 | + | |
604 | log.t108('try load: ' + src); | |
605 | ||
606 | if(_reg.j.get('d').children('img' + "[src='" + src + "']").length === 0) | |
607 | { | |
608 | switch(true) | |
609 | - | log.t108('try load: bioscoop has images -- destruct-construct squence'); |
609 | + | |
610 | case src.match(/png/i): log.t108('try load: PNG ' + src); break; | |
611 | case src.match(/jpg/i): log.t108('try load: JPG ' + src); break; | |
612 | case src.match(/gif/i): log.t108('try load: GIF ' + src); break; | |
613 | default: log.t108('try load: unknown source ' + src); break; | |
614 | } | |
615 | ||
616 | var IMG = new Image(), img = $('<img />') | |
617 | .css({position: 'absolute'}) | |
618 | .addClass('tri4m-app-cinematic-image') | |
619 | .css('position', 'absolute'); | |
620 | ||
621 | $(IMG).hide() | |
622 | .load(function() | |
623 | { | |
624 | log.t108('try load: complete: ' + src); | |
625 | ||
626 | var css = _c.i(IMG, _reg.j.get('d')); | |
627 | ||
628 | $(IMG).remove(); | |
629 | ||
630 | var wait = setInterval(function() | |
631 | { | |
632 | clearInterval(wait); | |
633 | log.t108('try load: append: ' + src); | |
634 | _reg.j.get('d').prepend(img.attr('src', src).css(css)); | |
635 | _reg.j.get('d').animate({opacity : 1}, 500); | |
636 | }, 100); | |
637 | ||
638 | IMG.onload = function(){}; | |
639 | }) | |
640 | .error(function() | |
641 | { | |
642 | log.t108('try load: error: ' + src, 3); | |
643 | IMG.onerror = function(){}; | |
644 | }); | |
645 | ||
646 | $(IMG).attr('src', src); | |
647 | _reg.j.get('d').html(IMG); | |
648 | ||
649 | } | |
650 | else | |
651 | { | |
652 | log.t108('try load: known source ' + src); | |
653 | ||
654 | var img = _reg.j.get('d').children('img' + "[src='" + src + "']"); | |
655 | img.show(); | |
656 | _reg.j.get('d').animate({opacity : 1}, 500); | |
657 | } | |
658 | }; | |
659 | ||
660 | if(_reg.j.get('d').children('img').length === 0) | |
661 | { | |
662 | log.t108('try load: bioscoop has no images -- construct sequence'); | |
663 | ||
664 | _reg.j.get('d').css({opacity : 0}); | |
665 | load(); | |
666 | } | |
667 | else | |
668 | { | |
669 | log.t108('try load: bioscoop has images -- destruct-construct sequence'); | |
670 | ||
671 | _reg.j.get('d').stop().animate({opacity : 0}, 500, function() | |
672 | { | |
673 | $('img', _reg.j.get('d')).remove(); | |
674 | load(); | |
675 | }); | |
676 | } | |
677 | ||
678 | ||
679 | }, true); | |
680 | ||
681 | _bnd.r.register('resize.resolutionchange', _j.window, true); | |
682 | ||
683 | var foo = false; | |
684 | __settings.thumbs.callBackAfterShow = function() | |
685 | { | |
686 | if(true === foo) return; | |
687 | foo = true; | |
688 | _update(); | |
689 | }; | |
690 | _dom(); | |
691 | _update(); | |
692 | ||
693 | var br = _bnd.r.toValueObject(), bl = _bnd.l.toValueObject(); | |
694 | for(var i in br) { $(window).bind(i, br[i]); } | |
695 | for(var i in bl) { _reg.j.get('l').unbind(i).bind(i, bl[i]); } | |
696 | ||
697 | _reg.j.get('l').trigger('insert-item'); | |
698 | ||
699 | if(__settings.bioscoop === null) | |
700 | { | |
701 | __settings.bioscoop = 'target'; | |
702 | $('body').prepend('<div id="'+ __settings.bioscoop +'"/>'); | |
703 | } | |
704 | _update(); | |
705 | })(); | |
706 | }; | |
707 | ||
708 | $.tri4m.log('initialize tri4m.app.cinematic: tri4m LABS', 1); | |
709 | var instance = new __instance(__SELF); | |
710 | $.tri4m.global.__INSTANCE_REGISTRY__.register(__SELF, regName, instance); | |
711 | } |