')[0], { prop: 0 }),
28 |
29 | isIE6 = $.browser.msie && $.browser.version < 7 && !window.XMLHttpRequest,
30 |
31 | /*
32 | * Private methods
33 | */
34 |
35 | _abort = function() {
36 | loading.hide();
37 |
38 | imgPreloader.onerror = imgPreloader.onload = null;
39 |
40 | if (ajaxLoader) {
41 | ajaxLoader.abort();
42 | }
43 |
44 | tmp.empty();
45 | },
46 |
47 | _error = function() {
48 | if (false === selectedOpts.onError(selectedArray, selectedIndex, selectedOpts)) {
49 | loading.hide();
50 | busy = false;
51 | return;
52 | }
53 |
54 | selectedOpts.titleShow = false;
55 |
56 | selectedOpts.width = 'auto';
57 | selectedOpts.height = 'auto';
58 |
59 | tmp.html( 'The requested content cannot be loaded.
Please try again later.
' );
60 |
61 | _process_inline();
62 | },
63 |
64 | _start = function() {
65 | var obj = selectedArray[ selectedIndex ],
66 | href,
67 | type,
68 | title,
69 | str,
70 | emb,
71 | ret;
72 |
73 | _abort();
74 |
75 | selectedOpts = $.extend({}, $.fn.fancybox.defaults, (typeof $(obj).data('fancybox') == 'undefined' ? selectedOpts : $(obj).data('fancybox')));
76 |
77 | ret = selectedOpts.onStart(selectedArray, selectedIndex, selectedOpts);
78 |
79 | if (ret === false) {
80 | busy = false;
81 | return;
82 | } else if (typeof ret == 'object') {
83 | selectedOpts = $.extend(selectedOpts, ret);
84 | }
85 |
86 | title = selectedOpts.title || (obj.nodeName ? $(obj).attr('title') : obj.title) || '';
87 |
88 | if (obj.nodeName && !selectedOpts.orig) {
89 | selectedOpts.orig = $(obj).children("img:first").length ? $(obj).children("img:first") : $(obj);
90 | }
91 |
92 | if (title === '' && selectedOpts.orig && selectedOpts.titleFromAlt) {
93 | title = selectedOpts.orig.attr('alt');
94 | }
95 |
96 | href = selectedOpts.href || (obj.nodeName ? $(obj).attr('href') : obj.href) || null;
97 |
98 | if ((/^(?:javascript)/i).test(href) || href == '#') {
99 | href = null;
100 | }
101 |
102 | if (selectedOpts.type) {
103 | type = selectedOpts.type;
104 |
105 | if (!href) {
106 | href = selectedOpts.content;
107 | }
108 |
109 | } else if (selectedOpts.content) {
110 | type = 'html';
111 |
112 | } else if (href) {
113 | if (href.match(imgRegExp)) {
114 | type = 'image';
115 |
116 | } else if (href.match(swfRegExp)) {
117 | type = 'swf';
118 |
119 | } else if ($(obj).hasClass("iframe")) {
120 | type = 'iframe';
121 |
122 | } else if (href.indexOf("#") === 0) {
123 | type = 'inline';
124 |
125 | } else {
126 | type = 'ajax';
127 | }
128 | }
129 |
130 | if (!type) {
131 | _error();
132 | return;
133 | }
134 |
135 | if (type == 'inline') {
136 | obj = href.substr(href.indexOf("#"));
137 | type = $(obj).length > 0 ? 'inline' : 'ajax';
138 | }
139 |
140 | selectedOpts.type = type;
141 | selectedOpts.href = href;
142 | selectedOpts.title = title;
143 |
144 | if (selectedOpts.autoDimensions) {
145 | if (selectedOpts.type == 'html' || selectedOpts.type == 'inline' || selectedOpts.type == 'ajax') {
146 | selectedOpts.width = 'auto';
147 | selectedOpts.height = 'auto';
148 | } else {
149 | selectedOpts.autoDimensions = false;
150 | }
151 | }
152 |
153 | if (selectedOpts.modal) {
154 | selectedOpts.overlayShow = true;
155 | selectedOpts.hideOnOverlayClick = false;
156 | selectedOpts.hideOnContentClick = false;
157 | selectedOpts.enableEscapeButton = false;
158 | selectedOpts.showCloseButton = false;
159 | }
160 |
161 | selectedOpts.padding = parseInt(selectedOpts.padding, 10);
162 | selectedOpts.margin = parseInt(selectedOpts.margin, 10);
163 |
164 | tmp.css('padding', (selectedOpts.padding + selectedOpts.margin));
165 |
166 | $('.fancybox-inline-tmp').unbind('fancybox-cancel').bind('fancybox-change', function() {
167 | $(this).replaceWith(content.children());
168 | });
169 |
170 | switch (type) {
171 | case 'html' :
172 | tmp.html( selectedOpts.content );
173 | _process_inline();
174 | break;
175 |
176 | case 'inline' :
177 | if ( $(obj).parent().is('#fancybox-content') === true) {
178 | busy = false;
179 | return;
180 | }
181 |
182 | $('')
183 | .hide()
184 | .insertBefore( $(obj) )
185 | .bind('fancybox-cleanup', function() {
186 | $(this).replaceWith(content.children());
187 | }).bind('fancybox-cancel', function() {
188 | $(this).replaceWith(tmp.children());
189 | });
190 |
191 | $(obj).appendTo(tmp);
192 |
193 | _process_inline();
194 | break;
195 |
196 | case 'image':
197 | busy = false;
198 |
199 | $.fancybox.showActivity();
200 |
201 | imgPreloader = new Image();
202 |
203 | imgPreloader.onerror = function() {
204 | _error();
205 | };
206 |
207 | imgPreloader.onload = function() {
208 | busy = true;
209 |
210 | imgPreloader.onerror = imgPreloader.onload = null;
211 |
212 | _process_image();
213 | };
214 |
215 | imgPreloader.src = href;
216 | break;
217 |
218 | case 'swf':
219 | selectedOpts.scrolling = 'no';
220 |
221 | str = '';
230 |
231 | tmp.html(str);
232 |
233 | _process_inline();
234 | break;
235 |
236 | case 'ajax':
237 | busy = false;
238 |
239 | $.fancybox.showActivity();
240 |
241 | selectedOpts.ajax.win = selectedOpts.ajax.success;
242 |
243 | ajaxLoader = $.ajax($.extend({}, selectedOpts.ajax, {
244 | url : href,
245 | data : selectedOpts.ajax.data || {},
246 | error : function(XMLHttpRequest, textStatus, errorThrown) {
247 | if ( XMLHttpRequest.status > 0 ) {
248 | _error();
249 | }
250 | },
251 | success : function(data, textStatus, XMLHttpRequest) {
252 | var o = typeof XMLHttpRequest == 'object' ? XMLHttpRequest : ajaxLoader;
253 | if (o.status == 200) {
254 | if ( typeof selectedOpts.ajax.win == 'function' ) {
255 | ret = selectedOpts.ajax.win(href, data, textStatus, XMLHttpRequest);
256 |
257 | if (ret === false) {
258 | loading.hide();
259 | return;
260 | } else if (typeof ret == 'string' || typeof ret == 'object') {
261 | data = ret;
262 | }
263 | }
264 |
265 | tmp.html( data );
266 | _process_inline();
267 | }
268 | }
269 | }));
270 |
271 | break;
272 |
273 | case 'iframe':
274 | _show();
275 | break;
276 | }
277 | },
278 |
279 | _process_inline = function() {
280 | var
281 | w = selectedOpts.width,
282 | h = selectedOpts.height;
283 |
284 | if (w.toString().indexOf('%') > -1) {
285 | w = parseInt( ($(window).width() - (selectedOpts.margin * 2)) * parseFloat(w) / 100, 10) + 'px';
286 |
287 | } else {
288 | w = w == 'auto' ? 'auto' : w + 'px';
289 | }
290 |
291 | if (h.toString().indexOf('%') > -1) {
292 | h = parseInt( ($(window).height() - (selectedOpts.margin * 2)) * parseFloat(h) / 100, 10) + 'px';
293 |
294 | } else {
295 | h = h == 'auto' ? 'auto' : h + 'px';
296 | }
297 |
298 | tmp.wrapInner('');
299 |
300 | selectedOpts.width = tmp.width();
301 | selectedOpts.height = tmp.height();
302 |
303 | _show();
304 | },
305 |
306 | _process_image = function() {
307 | selectedOpts.width = imgPreloader.width;
308 | selectedOpts.height = imgPreloader.height;
309 |
310 | $("
").attr({
311 | 'id' : 'fancybox-img',
312 | 'src' : imgPreloader.src,
313 | 'alt' : selectedOpts.title
314 | }).appendTo( tmp );
315 |
316 | _show();
317 | },
318 |
319 | _show = function() {
320 | var pos, equal;
321 |
322 | loading.hide();
323 |
324 | if (wrap.is(":visible") && false === currentOpts.onCleanup(currentArray, currentIndex, currentOpts)) {
325 | $.event.trigger('fancybox-cancel');
326 |
327 | busy = false;
328 | return;
329 | }
330 |
331 | busy = true;
332 |
333 | $(content.add( overlay )).unbind();
334 |
335 | $(window).unbind("resize.fb scroll.fb");
336 | $(document).unbind('keydown.fb');
337 |
338 | if (wrap.is(":visible") && currentOpts.titlePosition !== 'outside') {
339 | wrap.css('height', wrap.height());
340 | }
341 |
342 | currentArray = selectedArray;
343 | currentIndex = selectedIndex;
344 | currentOpts = selectedOpts;
345 |
346 | if (currentOpts.overlayShow) {
347 | overlay.css({
348 | 'background-color' : currentOpts.overlayColor,
349 | 'opacity' : currentOpts.overlayOpacity,
350 | 'cursor' : currentOpts.hideOnOverlayClick ? 'pointer' : 'auto',
351 | 'height' : $(document).height()
352 | });
353 |
354 | if (!overlay.is(':visible')) {
355 | if (isIE6) {
356 | $('select:not(#fancybox-tmp select)').filter(function() {
357 | return this.style.visibility !== 'hidden';
358 | }).css({'visibility' : 'hidden'}).one('fancybox-cleanup', function() {
359 | this.style.visibility = 'inherit';
360 | });
361 | }
362 |
363 | overlay.show();
364 | }
365 | } else {
366 | overlay.hide();
367 | }
368 |
369 | final_pos = _get_zoom_to();
370 |
371 | _process_title();
372 |
373 | if (wrap.is(":visible")) {
374 | $( close.add( nav_left ).add( nav_right ) ).hide();
375 |
376 | pos = wrap.position(),
377 |
378 | start_pos = {
379 | top : pos.top,
380 | left : pos.left,
381 | width : wrap.width(),
382 | height : wrap.height()
383 | };
384 |
385 | equal = (start_pos.width == final_pos.width && start_pos.height == final_pos.height);
386 |
387 | content.fadeTo(currentOpts.changeFade, 0.3, function() {
388 | var finish_resizing = function() {
389 | content.html( tmp.contents() ).fadeTo(currentOpts.changeFade, 1, _finish);
390 | };
391 |
392 | $.event.trigger('fancybox-change');
393 |
394 | content
395 | .empty()
396 | .removeAttr('filter')
397 | .css({
398 | 'border-width' : currentOpts.padding,
399 | 'width' : final_pos.width - currentOpts.padding * 2,
400 | 'height' : selectedOpts.autoDimensions ? 'auto' : final_pos.height - titleHeight - currentOpts.padding * 2
401 | });
402 |
403 | if (equal) {
404 | finish_resizing();
405 |
406 | } else {
407 | fx.prop = 0;
408 |
409 | $(fx).animate({prop: 1}, {
410 | duration : currentOpts.changeSpeed,
411 | easing : currentOpts.easingChange,
412 | step : _draw,
413 | complete : finish_resizing
414 | });
415 | }
416 | });
417 |
418 | return;
419 | }
420 |
421 | wrap.removeAttr("style");
422 |
423 | content.css('border-width', currentOpts.padding);
424 |
425 | if (currentOpts.transitionIn == 'elastic') {
426 | start_pos = _get_zoom_from();
427 |
428 | content.html( tmp.contents() );
429 |
430 | wrap.show();
431 |
432 | if (currentOpts.opacity) {
433 | final_pos.opacity = 0;
434 | }
435 |
436 | fx.prop = 0;
437 |
438 | $(fx).animate({prop: 1}, {
439 | duration : currentOpts.speedIn,
440 | easing : currentOpts.easingIn,
441 | step : _draw,
442 | complete : _finish
443 | });
444 |
445 | return;
446 | }
447 |
448 | if (currentOpts.titlePosition == 'inside' && titleHeight > 0) {
449 | title.show();
450 | }
451 |
452 | content
453 | .css({
454 | 'width' : final_pos.width - currentOpts.padding * 2,
455 | 'height' : selectedOpts.autoDimensions ? 'auto' : final_pos.height - titleHeight - currentOpts.padding * 2
456 | })
457 | .html( tmp.contents() );
458 |
459 | wrap
460 | .css(final_pos)
461 | .fadeIn( currentOpts.transitionIn == 'none' ? 0 : currentOpts.speedIn, _finish );
462 | },
463 |
464 | _format_title = function(title) {
465 | if (title && title.length) {
466 | if (currentOpts.titlePosition == 'float') {
467 | return '';
468 | }
469 |
470 | return '' + title + '
';
471 | }
472 |
473 | return false;
474 | },
475 |
476 | _process_title = function() {
477 | titleStr = currentOpts.title || '';
478 | titleHeight = 0;
479 |
480 | title
481 | .empty()
482 | .removeAttr('style')
483 | .removeClass();
484 |
485 | if (currentOpts.titleShow === false) {
486 | title.hide();
487 | return;
488 | }
489 |
490 | titleStr = $.isFunction(currentOpts.titleFormat) ? currentOpts.titleFormat(titleStr, currentArray, currentIndex, currentOpts) : _format_title(titleStr);
491 |
492 | if (!titleStr || titleStr === '') {
493 | title.hide();
494 | return;
495 | }
496 |
497 | title
498 | .addClass('fancybox-title-' + currentOpts.titlePosition)
499 | .html( titleStr )
500 | .appendTo( 'body' )
501 | .show();
502 |
503 | switch (currentOpts.titlePosition) {
504 | case 'inside':
505 | title
506 | .css({
507 | 'width' : final_pos.width - (currentOpts.padding * 2),
508 | 'marginLeft' : currentOpts.padding,
509 | 'marginRight' : currentOpts.padding
510 | });
511 |
512 | titleHeight = title.outerHeight(true);
513 |
514 | title.appendTo( outer );
515 |
516 | final_pos.height += titleHeight;
517 | break;
518 |
519 | case 'over':
520 | title
521 | .css({
522 | 'marginLeft' : currentOpts.padding,
523 | 'width' : final_pos.width - (currentOpts.padding * 2),
524 | 'bottom' : currentOpts.padding
525 | })
526 | .appendTo( outer );
527 | break;
528 |
529 | case 'float':
530 | title
531 | .css('left', parseInt((title.width() - final_pos.width - 40)/ 2, 10) * -1)
532 | .appendTo( wrap );
533 | break;
534 |
535 | default:
536 | title
537 | .css({
538 | 'width' : final_pos.width - (currentOpts.padding * 2),
539 | 'paddingLeft' : currentOpts.padding,
540 | 'paddingRight' : currentOpts.padding
541 | })
542 | .appendTo( wrap );
543 | break;
544 | }
545 |
546 | title.hide();
547 | },
548 |
549 | _set_navigation = function() {
550 | if (currentOpts.enableEscapeButton || currentOpts.enableKeyboardNav) {
551 | $(document).bind('keydown.fb', function(e) {
552 | if (e.keyCode == 27 && currentOpts.enableEscapeButton) {
553 | e.preventDefault();
554 | $.fancybox.close();
555 |
556 | } else if ((e.keyCode == 37 || e.keyCode == 39) && currentOpts.enableKeyboardNav && e.target.tagName !== 'INPUT' && e.target.tagName !== 'TEXTAREA' && e.target.tagName !== 'SELECT') {
557 | e.preventDefault();
558 | $.fancybox[ e.keyCode == 37 ? 'prev' : 'next']();
559 | }
560 | });
561 | }
562 |
563 | if (!currentOpts.showNavArrows) {
564 | nav_left.hide();
565 | nav_right.hide();
566 | return;
567 | }
568 |
569 | if ((currentOpts.cyclic && currentArray.length > 1) || currentIndex !== 0) {
570 | nav_left.show();
571 | }
572 |
573 | if ((currentOpts.cyclic && currentArray.length > 1) || currentIndex != (currentArray.length -1)) {
574 | nav_right.show();
575 | }
576 | },
577 |
578 | _finish = function () {
579 | if (!$.support.opacity) {
580 | content.get(0).style.removeAttribute('filter');
581 | wrap.get(0).style.removeAttribute('filter');
582 | }
583 |
584 | if (selectedOpts.autoDimensions) {
585 | content.css('height', 'auto');
586 | }
587 |
588 | wrap.css('height', 'auto');
589 |
590 | if (titleStr && titleStr.length) {
591 | title.show();
592 | }
593 |
594 | if (currentOpts.showCloseButton) {
595 | close.show();
596 | }
597 |
598 | _set_navigation();
599 |
600 | if (currentOpts.hideOnContentClick) {
601 | content.bind('click', $.fancybox.close);
602 | }
603 |
604 | if (currentOpts.hideOnOverlayClick) {
605 | overlay.bind('click', $.fancybox.close);
606 | }
607 |
608 | $(window).bind("resize.fb", $.fancybox.resize);
609 |
610 | if (currentOpts.centerOnScroll) {
611 | $(window).bind("scroll.fb", $.fancybox.center);
612 | }
613 |
614 | if (currentOpts.type == 'iframe') {
615 | $('').appendTo(content);
616 | }
617 |
618 | wrap.show();
619 |
620 | busy = false;
621 |
622 | $.fancybox.center();
623 |
624 | currentOpts.onComplete(currentArray, currentIndex, currentOpts);
625 |
626 | _preload_images();
627 | },
628 |
629 | _preload_images = function() {
630 | var href,
631 | objNext;
632 |
633 | if ((currentArray.length -1) > currentIndex) {
634 | href = currentArray[ currentIndex + 1 ].href;
635 |
636 | if (typeof href !== 'undefined' && href.match(imgRegExp)) {
637 | objNext = new Image();
638 | objNext.src = href;
639 | }
640 | }
641 |
642 | if (currentIndex > 0) {
643 | href = currentArray[ currentIndex - 1 ].href;
644 |
645 | if (typeof href !== 'undefined' && href.match(imgRegExp)) {
646 | objNext = new Image();
647 | objNext.src = href;
648 | }
649 | }
650 | },
651 |
652 | _draw = function(pos) {
653 | var dim = {
654 | width : parseInt(start_pos.width + (final_pos.width - start_pos.width) * pos, 10),
655 | height : parseInt(start_pos.height + (final_pos.height - start_pos.height) * pos, 10),
656 |
657 | top : parseInt(start_pos.top + (final_pos.top - start_pos.top) * pos, 10),
658 | left : parseInt(start_pos.left + (final_pos.left - start_pos.left) * pos, 10)
659 | };
660 |
661 | if (typeof final_pos.opacity !== 'undefined') {
662 | dim.opacity = pos < 0.5 ? 0.5 : pos;
663 | }
664 |
665 | wrap.css(dim);
666 |
667 | content.css({
668 | 'width' : dim.width - currentOpts.padding * 2,
669 | 'height' : dim.height - (titleHeight * pos) - currentOpts.padding * 2
670 | });
671 | },
672 |
673 | _get_viewport = function() {
674 | return [
675 | $(window).width() - (currentOpts.margin * 2),
676 | $(window).height() - (currentOpts.margin * 2),
677 | $(document).scrollLeft() + currentOpts.margin,
678 | $(document).scrollTop() + currentOpts.margin
679 | ];
680 | },
681 |
682 | _get_zoom_to = function () {
683 | var view = _get_viewport(),
684 | to = {},
685 | resize = currentOpts.autoScale,
686 | double_padding = currentOpts.padding * 2,
687 | ratio;
688 |
689 | if (currentOpts.width.toString().indexOf('%') > -1) {
690 | to.width = parseInt((view[0] * parseFloat(currentOpts.width)) / 100, 10);
691 | } else {
692 | to.width = currentOpts.width + double_padding;
693 | }
694 |
695 | if (currentOpts.height.toString().indexOf('%') > -1) {
696 | to.height = parseInt((view[1] * parseFloat(currentOpts.height)) / 100, 10);
697 | } else {
698 | to.height = currentOpts.height + double_padding;
699 | }
700 |
701 | if (resize && (to.width > view[0] || to.height > view[1])) {
702 | if (selectedOpts.type == 'image' || selectedOpts.type == 'swf') {
703 | ratio = (currentOpts.width ) / (currentOpts.height );
704 |
705 | if ((to.width ) > view[0]) {
706 | to.width = view[0];
707 | to.height = parseInt(((to.width - double_padding) / ratio) + double_padding, 10);
708 | }
709 |
710 | if ((to.height) > view[1]) {
711 | to.height = view[1];
712 | to.width = parseInt(((to.height - double_padding) * ratio) + double_padding, 10);
713 | }
714 |
715 | } else {
716 | to.width = Math.min(to.width, view[0]);
717 | to.height = Math.min(to.height, view[1]);
718 | }
719 | }
720 |
721 | to.top = parseInt(Math.max(view[3] - 20, view[3] + ((view[1] - to.height - 40) * 0.5)), 10);
722 | to.left = parseInt(Math.max(view[2] - 20, view[2] + ((view[0] - to.width - 40) * 0.5)), 10);
723 |
724 | return to;
725 | },
726 |
727 | _get_obj_pos = function(obj) {
728 | var pos = obj.offset();
729 |
730 | pos.top += parseInt( obj.css('paddingTop'), 10 ) || 0;
731 | pos.left += parseInt( obj.css('paddingLeft'), 10 ) || 0;
732 |
733 | pos.top += parseInt( obj.css('border-top-width'), 10 ) || 0;
734 | pos.left += parseInt( obj.css('border-left-width'), 10 ) || 0;
735 |
736 | pos.width = obj.width();
737 | pos.height = obj.height();
738 |
739 | return pos;
740 | },
741 |
742 | _get_zoom_from = function() {
743 | var orig = selectedOpts.orig ? $(selectedOpts.orig) : false,
744 | from = {},
745 | pos,
746 | view;
747 |
748 | if (orig && orig.length) {
749 | pos = _get_obj_pos(orig);
750 |
751 | from = {
752 | width : pos.width + (currentOpts.padding * 2),
753 | height : pos.height + (currentOpts.padding * 2),
754 | top : pos.top - currentOpts.padding - 20,
755 | left : pos.left - currentOpts.padding - 20
756 | };
757 |
758 | } else {
759 | view = _get_viewport();
760 |
761 | from = {
762 | width : currentOpts.padding * 2,
763 | height : currentOpts.padding * 2,
764 | top : parseInt(view[3] + view[1] * 0.5, 10),
765 | left : parseInt(view[2] + view[0] * 0.5, 10)
766 | };
767 | }
768 |
769 | return from;
770 | },
771 |
772 | _animate_loading = function() {
773 | if (!loading.is(':visible')){
774 | clearInterval(loadingTimer);
775 | return;
776 | }
777 |
778 | $('div', loading).css('top', (loadingFrame * -40) + 'px');
779 |
780 | loadingFrame = (loadingFrame + 1) % 12;
781 | };
782 |
783 | /*
784 | * Public methods
785 | */
786 |
787 | $.fn.fancybox = function(options) {
788 | if (!$(this).length) {
789 | return this;
790 | }
791 |
792 | $(this)
793 | .data('fancybox', $.extend({}, options, ($.metadata ? $(this).metadata() : {})))
794 | .unbind('click.fb')
795 | .bind('click.fb', function(e) {
796 | e.preventDefault();
797 |
798 | if (busy) {
799 | return;
800 | }
801 |
802 | busy = true;
803 |
804 | $(this).blur();
805 |
806 | selectedArray = [];
807 | selectedIndex = 0;
808 |
809 | var rel = $(this).attr('rel') || '';
810 |
811 | if (!rel || rel == '' || rel === 'nofollow') {
812 | selectedArray.push(this);
813 |
814 | } else {
815 | selectedArray = $("a[rel=" + rel + "], area[rel=" + rel + "]");
816 | selectedIndex = selectedArray.index( this );
817 | }
818 |
819 | _start();
820 |
821 | return;
822 | });
823 |
824 | return this;
825 | };
826 |
827 | $.fancybox = function(obj) {
828 | var opts;
829 |
830 | if (busy) {
831 | return;
832 | }
833 |
834 | busy = true;
835 | opts = typeof arguments[1] !== 'undefined' ? arguments[1] : {};
836 |
837 | selectedArray = [];
838 | selectedIndex = parseInt(opts.index, 10) || 0;
839 |
840 | if ($.isArray(obj)) {
841 | for (var i = 0, j = obj.length; i < j; i++) {
842 | if (typeof obj[i] == 'object') {
843 | $(obj[i]).data('fancybox', $.extend({}, opts, obj[i]));
844 | } else {
845 | obj[i] = $({}).data('fancybox', $.extend({content : obj[i]}, opts));
846 | }
847 | }
848 |
849 | selectedArray = jQuery.merge(selectedArray, obj);
850 |
851 | } else {
852 | if (typeof obj == 'object') {
853 | $(obj).data('fancybox', $.extend({}, opts, obj));
854 | } else {
855 | obj = $({}).data('fancybox', $.extend({content : obj}, opts));
856 | }
857 |
858 | selectedArray.push(obj);
859 | }
860 |
861 | if (selectedIndex > selectedArray.length || selectedIndex < 0) {
862 | selectedIndex = 0;
863 | }
864 |
865 | _start();
866 | };
867 |
868 | $.fancybox.showActivity = function() {
869 | clearInterval(loadingTimer);
870 |
871 | loading.show();
872 | loadingTimer = setInterval(_animate_loading, 66);
873 | };
874 |
875 | $.fancybox.hideActivity = function() {
876 | loading.hide();
877 | };
878 |
879 | $.fancybox.next = function() {
880 | return $.fancybox.pos( currentIndex + 1);
881 | };
882 |
883 | $.fancybox.prev = function() {
884 | return $.fancybox.pos( currentIndex - 1);
885 | };
886 |
887 | $.fancybox.pos = function(pos) {
888 | if (busy) {
889 | return;
890 | }
891 |
892 | pos = parseInt(pos);
893 |
894 | selectedArray = currentArray;
895 |
896 | if (pos > -1 && pos < currentArray.length) {
897 | selectedIndex = pos;
898 | _start();
899 |
900 | } else if (currentOpts.cyclic && currentArray.length > 1) {
901 | selectedIndex = pos >= currentArray.length ? 0 : currentArray.length - 1;
902 | _start();
903 | }
904 |
905 | return;
906 | };
907 |
908 | $.fancybox.cancel = function() {
909 | if (busy) {
910 | return;
911 | }
912 |
913 | busy = true;
914 |
915 | $.event.trigger('fancybox-cancel');
916 |
917 | _abort();
918 |
919 | selectedOpts.onCancel(selectedArray, selectedIndex, selectedOpts);
920 |
921 | busy = false;
922 | };
923 |
924 | // Note: within an iframe use - parent.$.fancybox.close();
925 | $.fancybox.close = function() {
926 | if (busy || wrap.is(':hidden')) {
927 | return;
928 | }
929 |
930 | busy = true;
931 |
932 | if (currentOpts && false === currentOpts.onCleanup(currentArray, currentIndex, currentOpts)) {
933 | busy = false;
934 | return;
935 | }
936 |
937 | _abort();
938 |
939 | $(close.add( nav_left ).add( nav_right )).hide();
940 |
941 | $(content.add( overlay )).unbind();
942 |
943 | $(window).unbind("resize.fb scroll.fb");
944 | $(document).unbind('keydown.fb');
945 |
946 | content.find('iframe').attr('src', isIE6 && /^https/i.test(window.location.href || '') ? 'javascript:void(false)' : 'about:blank');
947 |
948 | if (currentOpts.titlePosition !== 'inside') {
949 | title.empty();
950 | }
951 |
952 | wrap.stop();
953 |
954 | function _cleanup() {
955 | overlay.fadeOut('fast');
956 |
957 | title.empty().hide();
958 | wrap.hide();
959 |
960 | $.event.trigger('fancybox-cleanup');
961 |
962 | content.empty();
963 |
964 | currentOpts.onClosed(currentArray, currentIndex, currentOpts);
965 |
966 | currentArray = selectedOpts = [];
967 | currentIndex = selectedIndex = 0;
968 | currentOpts = selectedOpts = {};
969 |
970 | busy = false;
971 | }
972 |
973 | if (currentOpts.transitionOut == 'elastic') {
974 | start_pos = _get_zoom_from();
975 |
976 | var pos = wrap.position();
977 |
978 | final_pos = {
979 | top : pos.top ,
980 | left : pos.left,
981 | width : wrap.width(),
982 | height : wrap.height()
983 | };
984 |
985 | if (currentOpts.opacity) {
986 | final_pos.opacity = 1;
987 | }
988 |
989 | title.empty().hide();
990 |
991 | fx.prop = 1;
992 |
993 | $(fx).animate({ prop: 0 }, {
994 | duration : currentOpts.speedOut,
995 | easing : currentOpts.easingOut,
996 | step : _draw,
997 | complete : _cleanup
998 | });
999 |
1000 | } else {
1001 | wrap.fadeOut( currentOpts.transitionOut == 'none' ? 0 : currentOpts.speedOut, _cleanup);
1002 | }
1003 | };
1004 |
1005 | $.fancybox.resize = function() {
1006 | if (overlay.is(':visible')) {
1007 | overlay.css('height', $(document).height());
1008 | }
1009 |
1010 | $.fancybox.center(true);
1011 | };
1012 |
1013 | $.fancybox.center = function() {
1014 | var view, align;
1015 |
1016 | if (busy) {
1017 | return;
1018 | }
1019 |
1020 | align = arguments[0] === true ? 1 : 0;
1021 | view = _get_viewport();
1022 |
1023 | if (!align && (wrap.width() > view[0] || wrap.height() > view[1])) {
1024 | return;
1025 | }
1026 |
1027 | wrap
1028 | .stop()
1029 | .animate({
1030 | 'top' : parseInt(Math.max(view[3] - 20, view[3] + ((view[1] - content.height() - 40) * 0.5) - currentOpts.padding)),
1031 | 'left' : parseInt(Math.max(view[2] - 20, view[2] + ((view[0] - content.width() - 40) * 0.5) - currentOpts.padding))
1032 | }, typeof arguments[0] == 'number' ? arguments[0] : 200);
1033 | };
1034 |
1035 | $.fancybox.init = function() {
1036 | if ($("#fancybox-wrap").length) {
1037 | return;
1038 | }
1039 |
1040 | $('body').append(
1041 | tmp = $(''),
1042 | loading = $(''),
1043 | overlay = $(''),
1044 | wrap = $('')
1045 | );
1046 |
1047 | outer = $('')
1048 | .append('')
1049 | .appendTo( wrap );
1050 |
1051 | outer.append(
1052 | content = $(''),
1053 | close = $(''),
1054 | title = $(''),
1055 |
1056 | nav_left = $(''),
1057 | nav_right = $('')
1058 | );
1059 |
1060 | close.click($.fancybox.close);
1061 | loading.click($.fancybox.cancel);
1062 |
1063 | nav_left.click(function(e) {
1064 | e.preventDefault();
1065 | $.fancybox.prev();
1066 | });
1067 |
1068 | nav_right.click(function(e) {
1069 | e.preventDefault();
1070 | $.fancybox.next();
1071 | });
1072 |
1073 | if ($.fn.mousewheel) {
1074 | wrap.bind('mousewheel.fb', function(e, delta) {
1075 | if (busy) {
1076 | e.preventDefault();
1077 |
1078 | } else if ($(e.target).get(0).clientHeight == 0 || $(e.target).get(0).scrollHeight === $(e.target).get(0).clientHeight) {
1079 | e.preventDefault();
1080 | $.fancybox[ delta > 0 ? 'prev' : 'next']();
1081 | }
1082 | });
1083 | }
1084 |
1085 | if (!$.support.opacity) {
1086 | wrap.addClass('fancybox-ie');
1087 | }
1088 |
1089 | if (isIE6) {
1090 | loading.addClass('fancybox-ie6');
1091 | wrap.addClass('fancybox-ie6');
1092 |
1093 | $('').prependTo(outer);
1094 | }
1095 | };
1096 |
1097 | $.fn.fancybox.defaults = {
1098 | padding : 10,
1099 | margin : 40,
1100 | opacity : false,
1101 | modal : false,
1102 | cyclic : false,
1103 | scrolling : 'auto', // 'auto', 'yes' or 'no'
1104 |
1105 | width : 560,
1106 | height : 340,
1107 |
1108 | autoScale : true,
1109 | autoDimensions : true,
1110 | centerOnScroll : false,
1111 |
1112 | ajax : {},
1113 | swf : { wmode: 'transparent' },
1114 |
1115 | hideOnOverlayClick : true,
1116 | hideOnContentClick : false,
1117 |
1118 | overlayShow : true,
1119 | overlayOpacity : 0.7,
1120 | overlayColor : '#777',
1121 |
1122 | titleShow : true,
1123 | titlePosition : 'float', // 'float', 'outside', 'inside' or 'over'
1124 | titleFormat : null,
1125 | titleFromAlt : false,
1126 |
1127 | transitionIn : 'fade', // 'elastic', 'fade' or 'none'
1128 | transitionOut : 'fade', // 'elastic', 'fade' or 'none'
1129 |
1130 | speedIn : 300,
1131 | speedOut : 300,
1132 |
1133 | changeSpeed : 300,
1134 | changeFade : 'fast',
1135 |
1136 | easingIn : 'swing',
1137 | easingOut : 'swing',
1138 |
1139 | showCloseButton : true,
1140 | showNavArrows : true,
1141 | enableEscapeButton : true,
1142 | enableKeyboardNav : true,
1143 |
1144 | onStart : function(){},
1145 | onCancel : function(){},
1146 | onComplete : function(){},
1147 | onCleanup : function(){},
1148 | onClosed : function(){},
1149 | onError : function(){}
1150 | };
1151 |
1152 | $(document).ready(function() {
1153 | $.fancybox.init();
1154 | });
1155 |
1156 | })(jQuery);
--------------------------------------------------------------------------------
/static/fancybox/jquery.fancybox-1.3.4.pack.js:
--------------------------------------------------------------------------------
1 | /*
2 | * FancyBox - jQuery Plugin
3 | * Simple and fancy lightbox alternative
4 | *
5 | * Examples and documentation at: http://fancybox.net
6 | *
7 | * Copyright (c) 2008 - 2010 Janis Skarnelis
8 | * That said, it is hardly a one-person project. Many people have submitted bugs, code, and offered their advice freely. Their support is greatly appreciated.
9 | *
10 | * Version: 1.3.4 (11/11/2010)
11 | * Requires: jQuery v1.3+
12 | *
13 | * Dual licensed under the MIT and GPL licenses:
14 | * http://www.opensource.org/licenses/mit-license.php
15 | * http://www.gnu.org/licenses/gpl.html
16 | */
17 |
18 | ;(function(b){var m,t,u,f,D,j,E,n,z,A,q=0,e={},o=[],p=0,d={},l=[],G=null,v=new Image,J=/\.(jpg|gif|png|bmp|jpeg)(.*)?$/i,W=/[^\.]\.(swf)\s*$/i,K,L=1,y=0,s="",r,i,h=false,B=b.extend(b("")[0],{prop:0}),M=b.browser.msie&&b.browser.version<7&&!window.XMLHttpRequest,N=function(){t.hide();v.onerror=v.onload=null;G&&G.abort();m.empty()},O=function(){if(false===e.onError(o,q,e)){t.hide();h=false}else{e.titleShow=false;e.width="auto";e.height="auto";m.html('The requested content cannot be loaded.
Please try again later.
');
19 | F()}},I=function(){var a=o[q],c,g,k,C,P,w;N();e=b.extend({},b.fn.fancybox.defaults,typeof b(a).data("fancybox")=="undefined"?e:b(a).data("fancybox"));w=e.onStart(o,q,e);if(w===false)h=false;else{if(typeof w=="object")e=b.extend(e,w);k=e.title||(a.nodeName?b(a).attr("title"):a.title)||"";if(a.nodeName&&!e.orig)e.orig=b(a).children("img:first").length?b(a).children("img:first"):b(a);if(k===""&&e.orig&&e.titleFromAlt)k=e.orig.attr("alt");c=e.href||(a.nodeName?b(a).attr("href"):a.href)||null;if(/^(?:javascript)/i.test(c)||
20 | c=="#")c=null;if(e.type){g=e.type;if(!c)c=e.content}else if(e.content)g="html";else if(c)g=c.match(J)?"image":c.match(W)?"swf":b(a).hasClass("iframe")?"iframe":c.indexOf("#")===0?"inline":"ajax";if(g){if(g=="inline"){a=c.substr(c.indexOf("#"));g=b(a).length>0?"inline":"ajax"}e.type=g;e.href=c;e.title=k;if(e.autoDimensions)if(e.type=="html"||e.type=="inline"||e.type=="ajax"){e.width="auto";e.height="auto"}else e.autoDimensions=false;if(e.modal){e.overlayShow=true;e.hideOnOverlayClick=false;e.hideOnContentClick=
21 | false;e.enableEscapeButton=false;e.showCloseButton=false}e.padding=parseInt(e.padding,10);e.margin=parseInt(e.margin,10);m.css("padding",e.padding+e.margin);b(".fancybox-inline-tmp").unbind("fancybox-cancel").bind("fancybox-change",function(){b(this).replaceWith(j.children())});switch(g){case "html":m.html(e.content);F();break;case "inline":if(b(a).parent().is("#fancybox-content")===true){h=false;break}b('').hide().insertBefore(b(a)).bind("fancybox-cleanup",function(){b(this).replaceWith(j.children())}).bind("fancybox-cancel",
22 | function(){b(this).replaceWith(m.children())});b(a).appendTo(m);F();break;case "image":h=false;b.fancybox.showActivity();v=new Image;v.onerror=function(){O()};v.onload=function(){h=true;v.onerror=v.onload=null;e.width=v.width;e.height=v.height;b("
").attr({id:"fancybox-img",src:v.src,alt:e.title}).appendTo(m);Q()};v.src=c;break;case "swf":e.scrolling="no";C='";m.html(C);F();break;case "ajax":h=false;b.fancybox.showActivity();e.ajax.win=e.ajax.success;G=b.ajax(b.extend({},e.ajax,{url:c,data:e.ajax.data||{},error:function(x){x.status>0&&O()},success:function(x,H,R){if((typeof R=="object"?R:G).status==200){if(typeof e.ajax.win==
24 | "function"){w=e.ajax.win(c,x,H,R);if(w===false){t.hide();return}else if(typeof w=="string"||typeof w=="object")x=w}m.html(x);F()}}}));break;case "iframe":Q()}}else O()}},F=function(){var a=e.width,c=e.height;a=a.toString().indexOf("%")>-1?parseInt((b(window).width()-e.margin*2)*parseFloat(a)/100,10)+"px":a=="auto"?"auto":a+"px";c=c.toString().indexOf("%")>-1?parseInt((b(window).height()-e.margin*2)*parseFloat(c)/100,10)+"px":c=="auto"?"auto":c+"px";m.wrapInner('');e.width=m.width();e.height=m.height();Q()},Q=function(){var a,c;t.hide();if(f.is(":visible")&&false===d.onCleanup(l,p,d)){b.event.trigger("fancybox-cancel");h=false}else{h=true;b(j.add(u)).unbind();b(window).unbind("resize.fb scroll.fb");b(document).unbind("keydown.fb");f.is(":visible")&&d.titlePosition!=="outside"&&f.css("height",f.height());l=o;p=q;d=e;if(d.overlayShow){u.css({"background-color":d.overlayColor,
26 | opacity:d.overlayOpacity,cursor:d.hideOnOverlayClick?"pointer":"auto",height:b(document).height()});if(!u.is(":visible")){M&&b("select:not(#fancybox-tmp select)").filter(function(){return this.style.visibility!=="hidden"}).css({visibility:"hidden"}).one("fancybox-cleanup",function(){this.style.visibility="inherit"});u.show()}}else u.hide();i=X();s=d.title||"";y=0;n.empty().removeAttr("style").removeClass();if(d.titleShow!==false){if(b.isFunction(d.titleFormat))a=d.titleFormat(s,l,p,d);else a=s&&s.length?
27 | d.titlePosition=="float"?'':''+s+"
":false;s=a;if(!(!s||s==="")){n.addClass("fancybox-title-"+d.titlePosition).html(s).appendTo("body").show();switch(d.titlePosition){case "inside":n.css({width:i.width-d.padding*2,marginLeft:d.padding,marginRight:d.padding});
28 | y=n.outerHeight(true);n.appendTo(D);i.height+=y;break;case "over":n.css({marginLeft:d.padding,width:i.width-d.padding*2,bottom:d.padding}).appendTo(D);break;case "float":n.css("left",parseInt((n.width()-i.width-40)/2,10)*-1).appendTo(f);break;default:n.css({width:i.width-d.padding*2,paddingLeft:d.padding,paddingRight:d.padding}).appendTo(f)}}}n.hide();if(f.is(":visible")){b(E.add(z).add(A)).hide();a=f.position();r={top:a.top,left:a.left,width:f.width(),height:f.height()};c=r.width==i.width&&r.height==
29 | i.height;j.fadeTo(d.changeFade,0.3,function(){var g=function(){j.html(m.contents()).fadeTo(d.changeFade,1,S)};b.event.trigger("fancybox-change");j.empty().removeAttr("filter").css({"border-width":d.padding,width:i.width-d.padding*2,height:e.autoDimensions?"auto":i.height-y-d.padding*2});if(c)g();else{B.prop=0;b(B).animate({prop:1},{duration:d.changeSpeed,easing:d.easingChange,step:T,complete:g})}})}else{f.removeAttr("style");j.css("border-width",d.padding);if(d.transitionIn=="elastic"){r=V();j.html(m.contents());
30 | f.show();if(d.opacity)i.opacity=0;B.prop=0;b(B).animate({prop:1},{duration:d.speedIn,easing:d.easingIn,step:T,complete:S})}else{d.titlePosition=="inside"&&y>0&&n.show();j.css({width:i.width-d.padding*2,height:e.autoDimensions?"auto":i.height-y-d.padding*2}).html(m.contents());f.css(i).fadeIn(d.transitionIn=="none"?0:d.speedIn,S)}}}},Y=function(){if(d.enableEscapeButton||d.enableKeyboardNav)b(document).bind("keydown.fb",function(a){if(a.keyCode==27&&d.enableEscapeButton){a.preventDefault();b.fancybox.close()}else if((a.keyCode==
31 | 37||a.keyCode==39)&&d.enableKeyboardNav&&a.target.tagName!=="INPUT"&&a.target.tagName!=="TEXTAREA"&&a.target.tagName!=="SELECT"){a.preventDefault();b.fancybox[a.keyCode==37?"prev":"next"]()}});if(d.showNavArrows){if(d.cyclic&&l.length>1||p!==0)z.show();if(d.cyclic&&l.length>1||p!=l.length-1)A.show()}else{z.hide();A.hide()}},S=function(){if(!b.support.opacity){j.get(0).style.removeAttribute("filter");f.get(0).style.removeAttribute("filter")}e.autoDimensions&&j.css("height","auto");f.css("height","auto");
32 | s&&s.length&&n.show();d.showCloseButton&&E.show();Y();d.hideOnContentClick&&j.bind("click",b.fancybox.close);d.hideOnOverlayClick&&u.bind("click",b.fancybox.close);b(window).bind("resize.fb",b.fancybox.resize);d.centerOnScroll&&b(window).bind("scroll.fb",b.fancybox.center);if(d.type=="iframe")b('').appendTo(j);
33 | f.show();h=false;b.fancybox.center();d.onComplete(l,p,d);var a,c;if(l.length-1>p){a=l[p+1].href;if(typeof a!=="undefined"&&a.match(J)){c=new Image;c.src=a}}if(p>0){a=l[p-1].href;if(typeof a!=="undefined"&&a.match(J)){c=new Image;c.src=a}}},T=function(a){var c={width:parseInt(r.width+(i.width-r.width)*a,10),height:parseInt(r.height+(i.height-r.height)*a,10),top:parseInt(r.top+(i.top-r.top)*a,10),left:parseInt(r.left+(i.left-r.left)*a,10)};if(typeof i.opacity!=="undefined")c.opacity=a<0.5?0.5:a;f.css(c);
34 | j.css({width:c.width-d.padding*2,height:c.height-y*a-d.padding*2})},U=function(){return[b(window).width()-d.margin*2,b(window).height()-d.margin*2,b(document).scrollLeft()+d.margin,b(document).scrollTop()+d.margin]},X=function(){var a=U(),c={},g=d.autoScale,k=d.padding*2;c.width=d.width.toString().indexOf("%")>-1?parseInt(a[0]*parseFloat(d.width)/100,10):d.width+k;c.height=d.height.toString().indexOf("%")>-1?parseInt(a[1]*parseFloat(d.height)/100,10):d.height+k;if(g&&(c.width>a[0]||c.height>a[1]))if(e.type==
35 | "image"||e.type=="swf"){g=d.width/d.height;if(c.width>a[0]){c.width=a[0];c.height=parseInt((c.width-k)/g+k,10)}if(c.height>a[1]){c.height=a[1];c.width=parseInt((c.height-k)*g+k,10)}}else{c.width=Math.min(c.width,a[0]);c.height=Math.min(c.height,a[1])}c.top=parseInt(Math.max(a[3]-20,a[3]+(a[1]-c.height-40)*0.5),10);c.left=parseInt(Math.max(a[2]-20,a[2]+(a[0]-c.width-40)*0.5),10);return c},V=function(){var a=e.orig?b(e.orig):false,c={};if(a&&a.length){c=a.offset();c.top+=parseInt(a.css("paddingTop"),
36 | 10)||0;c.left+=parseInt(a.css("paddingLeft"),10)||0;c.top+=parseInt(a.css("border-top-width"),10)||0;c.left+=parseInt(a.css("border-left-width"),10)||0;c.width=a.width();c.height=a.height();c={width:c.width+d.padding*2,height:c.height+d.padding*2,top:c.top-d.padding-20,left:c.left-d.padding-20}}else{a=U();c={width:d.padding*2,height:d.padding*2,top:parseInt(a[3]+a[1]*0.5,10),left:parseInt(a[2]+a[0]*0.5,10)}}return c},Z=function(){if(t.is(":visible")){b("div",t).css("top",L*-40+"px");L=(L+1)%12}else clearInterval(K)};
37 | b.fn.fancybox=function(a){if(!b(this).length)return this;b(this).data("fancybox",b.extend({},a,b.metadata?b(this).metadata():{})).unbind("click.fb").bind("click.fb",function(c){c.preventDefault();if(!h){h=true;b(this).blur();o=[];q=0;c=b(this).attr("rel")||"";if(!c||c==""||c==="nofollow")o.push(this);else{o=b("a[rel="+c+"], area[rel="+c+"]");q=o.index(this)}I()}});return this};b.fancybox=function(a,c){var g;if(!h){h=true;g=typeof c!=="undefined"?c:{};o=[];q=parseInt(g.index,10)||0;if(b.isArray(a)){for(var k=
38 | 0,C=a.length;ko.length||q<0)q=0;I()}};b.fancybox.showActivity=function(){clearInterval(K);t.show();K=setInterval(Z,66)};b.fancybox.hideActivity=function(){t.hide()};b.fancybox.next=function(){return b.fancybox.pos(p+
39 | 1)};b.fancybox.prev=function(){return b.fancybox.pos(p-1)};b.fancybox.pos=function(a){if(!h){a=parseInt(a);o=l;if(a>-1&&a1){q=a>=l.length?0:l.length-1;I()}}};b.fancybox.cancel=function(){if(!h){h=true;b.event.trigger("fancybox-cancel");N();e.onCancel(o,q,e);h=false}};b.fancybox.close=function(){function a(){u.fadeOut("fast");n.empty().hide();f.hide();b.event.trigger("fancybox-cleanup");j.empty();d.onClosed(l,p,d);l=e=[];p=q=0;d=e={};h=false}if(!(h||f.is(":hidden"))){h=
40 | true;if(d&&false===d.onCleanup(l,p,d))h=false;else{N();b(E.add(z).add(A)).hide();b(j.add(u)).unbind();b(window).unbind("resize.fb scroll.fb");b(document).unbind("keydown.fb");j.find("iframe").attr("src",M&&/^https/i.test(window.location.href||"")?"javascript:void(false)":"about:blank");d.titlePosition!=="inside"&&n.empty();f.stop();if(d.transitionOut=="elastic"){r=V();var c=f.position();i={top:c.top,left:c.left,width:f.width(),height:f.height()};if(d.opacity)i.opacity=1;n.empty().hide();B.prop=1;
41 | b(B).animate({prop:0},{duration:d.speedOut,easing:d.easingOut,step:T,complete:a})}else f.fadeOut(d.transitionOut=="none"?0:d.speedOut,a)}}};b.fancybox.resize=function(){u.is(":visible")&&u.css("height",b(document).height());b.fancybox.center(true)};b.fancybox.center=function(a){var c,g;if(!h){g=a===true?1:0;c=U();!g&&(f.width()>c[0]||f.height()>c[1])||f.stop().animate({top:parseInt(Math.max(c[3]-20,c[3]+(c[1]-j.height()-40)*0.5-d.padding)),left:parseInt(Math.max(c[2]-20,c[2]+(c[0]-j.width()-40)*0.5-
42 | d.padding))},typeof a=="number"?a:200)}};b.fancybox.init=function(){if(!b("#fancybox-wrap").length){b("body").append(m=b(''),t=b(''),u=b(''),f=b(''));D=b('').append('').appendTo(f);
43 | D.append(j=b(''),E=b(''),n=b(''),z=b(''),A=b(''));E.click(b.fancybox.close);t.click(b.fancybox.cancel);z.click(function(a){a.preventDefault();b.fancybox.prev()});A.click(function(a){a.preventDefault();b.fancybox.next()});
44 | b.fn.mousewheel&&f.bind("mousewheel.fb",function(a,c){if(h)a.preventDefault();else if(b(a.target).get(0).clientHeight==0||b(a.target).get(0).scrollHeight===b(a.target).get(0).clientHeight){a.preventDefault();b.fancybox[c>0?"prev":"next"]()}});b.support.opacity||f.addClass("fancybox-ie");if(M){t.addClass("fancybox-ie6");f.addClass("fancybox-ie6");b('').prependTo(D)}}};
45 | b.fn.fancybox.defaults={padding:10,margin:40,opacity:false,modal:false,cyclic:false,scrolling:"auto",width:560,height:340,autoScale:true,autoDimensions:true,centerOnScroll:false,ajax:{},swf:{wmode:"transparent"},hideOnOverlayClick:true,hideOnContentClick:false,overlayShow:true,overlayOpacity:0.7,overlayColor:"#777",titleShow:true,titlePosition:"float",titleFormat:null,titleFromAlt:false,transitionIn:"fade",transitionOut:"fade",speedIn:300,speedOut:300,changeSpeed:300,changeFade:"fast",easingIn:"swing",
46 | easingOut:"swing",showCloseButton:true,showNavArrows:true,enableEscapeButton:true,enableKeyboardNav:true,onStart:function(){},onCancel:function(){},onComplete:function(){},onCleanup:function(){},onClosed:function(){},onError:function(){}};b(document).ready(function(){b.fancybox.init()})})(jQuery);
--------------------------------------------------------------------------------
/static/fancybox/jquery.mousewheel-3.0.4.pack.js:
--------------------------------------------------------------------------------
1 | /*! Copyright (c) 2010 Brandon Aaron (http://brandonaaron.net)
2 | * Licensed under the MIT License (LICENSE.txt).
3 | *
4 | * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
5 | * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
6 | * Thanks to: Seamus Leahy for adding deltaX and deltaY
7 | *
8 | * Version: 3.0.4
9 | *
10 | * Requires: 1.2.2+
11 | */
12 |
13 | (function(d){function g(a){var b=a||window.event,i=[].slice.call(arguments,1),c=0,h=0,e=0;a=d.event.fix(b);a.type="mousewheel";if(a.wheelDelta)c=a.wheelDelta/120;if(a.detail)c=-a.detail/3;e=c;if(b.axis!==undefined&&b.axis===b.HORIZONTAL_AXIS){e=0;h=-1*c}if(b.wheelDeltaY!==undefined)e=b.wheelDeltaY/120;if(b.wheelDeltaX!==undefined)h=-1*b.wheelDeltaX/120;i.unshift(a,c,h,e);return d.event.handle.apply(this,i)}var f=["DOMMouseScroll","mousewheel"];d.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var a=
14 | f.length;a;)this.addEventListener(f[--a],g,false);else this.onmousewheel=g},teardown:function(){if(this.removeEventListener)for(var a=f.length;a;)this.removeEventListener(f[--a],g,false);else this.onmousewheel=null}};d.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})})(jQuery);
--------------------------------------------------------------------------------
/static/images/chuck.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/peterbe/toocool/d6e24e55728585addbad945122e7293e8903d14a/static/images/chuck.jpg
--------------------------------------------------------------------------------
/static/images/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/peterbe/toocool/d6e24e55728585addbad945122e7293e8903d14a/static/images/favicon.ico
--------------------------------------------------------------------------------
/static/images/link.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/peterbe/toocool/d6e24e55728585addbad945122e7293e8903d14a/static/images/link.png
--------------------------------------------------------------------------------
/static/images/loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/peterbe/toocool/d6e24e55728585addbad945122e7293e8903d14a/static/images/loading.gif
--------------------------------------------------------------------------------
/static/images/rock.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/peterbe/toocool/d6e24e55728585addbad945122e7293e8903d14a/static/images/rock.jpg
--------------------------------------------------------------------------------
/static/images/screengrab.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/peterbe/toocool/d6e24e55728585addbad945122e7293e8903d14a/static/images/screengrab.png
--------------------------------------------------------------------------------
/static/images/screengrab2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/peterbe/toocool/d6e24e55728585addbad945122e7293e8903d14a/static/images/screengrab2.png
--------------------------------------------------------------------------------
/static/images/screenshots/bookmarklet-in-toolbar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/peterbe/toocool/d6e24e55728585addbad945122e7293e8903d14a/static/images/screenshots/bookmarklet-in-toolbar.png
--------------------------------------------------------------------------------
/static/images/screenshots/bookmarklet-in-toolbar_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/peterbe/toocool/d6e24e55728585addbad945122e7293e8903d14a/static/images/screenshots/bookmarklet-in-toolbar_small.png
--------------------------------------------------------------------------------
/static/images/screenshots/everyone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/peterbe/toocool/d6e24e55728585addbad945122e7293e8903d14a/static/images/screenshots/everyone.png
--------------------------------------------------------------------------------
/static/images/screenshots/everyone_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/peterbe/toocool/d6e24e55728585addbad945122e7293e8903d14a/static/images/screenshots/everyone_small.png
--------------------------------------------------------------------------------
/static/images/screenshots/follows-me.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/peterbe/toocool/d6e24e55728585addbad945122e7293e8903d14a/static/images/screenshots/follows-me.png
--------------------------------------------------------------------------------
/static/images/screenshots/follows-me_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/peterbe/toocool/d6e24e55728585addbad945122e7293e8903d14a/static/images/screenshots/follows-me_small.png
--------------------------------------------------------------------------------
/static/images/screenshots/lookups.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/peterbe/toocool/d6e24e55728585addbad945122e7293e8903d14a/static/images/screenshots/lookups.png
--------------------------------------------------------------------------------
/static/images/screenshots/lookups_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/peterbe/toocool/d6e24e55728585addbad945122e7293e8903d14a/static/images/screenshots/lookups_small.png
--------------------------------------------------------------------------------
/static/images/screenshots/on-twitter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/peterbe/toocool/d6e24e55728585addbad945122e7293e8903d14a/static/images/screenshots/on-twitter.png
--------------------------------------------------------------------------------
/static/images/screenshots/on-twitter_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/peterbe/toocool/d6e24e55728585addbad945122e7293e8903d14a/static/images/screenshots/on-twitter_small.png
--------------------------------------------------------------------------------
/static/images/screenshots/too-cool.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/peterbe/toocool/d6e24e55728585addbad945122e7293e8903d14a/static/images/screenshots/too-cool.png
--------------------------------------------------------------------------------
/static/images/screenshots/too-cool_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/peterbe/toocool/d6e24e55728585addbad945122e7293e8903d14a/static/images/screenshots/too-cool_small.png
--------------------------------------------------------------------------------
/static/images/twitter-small-mirrored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/peterbe/toocool/d6e24e55728585addbad945122e7293e8903d14a/static/images/twitter-small-mirrored.png
--------------------------------------------------------------------------------
/static/images/twitter-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/peterbe/toocool/d6e24e55728585addbad945122e7293e8903d14a/static/images/twitter-small.png
--------------------------------------------------------------------------------
/static/images/twitter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/peterbe/toocool/d6e24e55728585addbad945122e7293e8903d14a/static/images/twitter.png
--------------------------------------------------------------------------------
/static/js/chart.js:
--------------------------------------------------------------------------------
1 | function Chart(div_id, options) {
2 | this.div_id = div_id;
3 | this.options = options;
4 | this.data = new google.visualization.DataTable();
5 | this.data.addColumn('string', '#');
6 | this.data.addColumn('number', options.title);
7 | this.chart = new google.visualization.LineChart(document.getElementById(div_id));
8 | this.draw = function() {
9 | this.chart.draw(this.data, this.options);
10 | };
11 | }
12 |
13 |
14 | Chart.prototype.add_value = function(n) {
15 | // now we have at least 2 values
16 | this.data.addRow();
17 | var i = this.data.getNumberOfRows() - 1;
18 | this.data.setValue(i, 0, '' + (i + 1));
19 | this.data.setValue(i, 1, n);
20 | if (i > 0) { // second iteration
21 | this.draw();
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/static/js/lookups.js:
--------------------------------------------------------------------------------
1 | function L() {
2 | if (window.console && window.console.log)
3 | console.log.apply(console, arguments);
4 | }
5 |
6 | function compareAssociativeArrays(a, b) {
7 | function nrKeys(a) {
8 | var i = 0;
9 | for (key in a) {
10 | i++;
11 | }
12 | return i;
13 | }
14 | if (a == b) {
15 | return true;
16 | }
17 | if (nrKeys(a) != nrKeys(b)) {
18 | return false;
19 | }
20 | for (key in a) {
21 | if (a[key] != b[key]) {
22 | return false;
23 | }
24 | }
25 | return true;
26 | }
27 |
28 | function tsep(n,swap) {
29 | var ts=",", ds="."; // thousands and decimal separators
30 | if (swap) { ts=","; ts="."; } // swap if requested
31 |
32 | var ns = String(n),ps=ns,ss=""; // numString, prefixString, suffixString
33 | var i = ns.indexOf(".");
34 | if (i!=-1) { // if ".", then split:
35 | ps = ns.substring(0,i);
36 | ss = ds+ns.substring(i+1);
37 | }
38 | return ps.replace(/(\d)(?=(\d{3})+([.]|$))/g,"$1"+ts)+ss;
39 | }
40 |
41 |
42 | // globals
43 | var previous = {}
44 | , incr = 0
45 | , chart_jsons = null
46 | , chart_jsonps = null
47 | , chart_usernames = null
48 | , chart_auths = null
49 | ;
50 |
51 | function cloneObject(source) {
52 | for (i in source) {
53 | if (typeof source[i] == 'source') {
54 | this[i] = new cloneObject(source[i]);
55 | }
56 | else{
57 | this[i] = source[i];
58 | }
59 | }
60 | }
61 | function _set_up_charts(numbers) {
62 | var options = {
63 | curveType: 'function',
64 | legend: 'none',
65 | width:400,
66 | height:300,
67 | lineWidth:3
68 | };
69 | if (chart_jsons === null && numbers.lookups_json) {
70 | var p = new cloneObject(options);
71 | p.title = 'Twitter requests by JSON';
72 | chart_jsons = new Chart('chart-jsons', p);
73 | }
74 | if (chart_jsonps === null && numbers.lookups_jsonp) {
75 | var p = new cloneObject(options);
76 | p.title = 'Twitter requests by JSONP';
77 | chart_jsonps = new Chart('chart-jsonps', p);
78 | }
79 | if (chart_usernames === null && numbers.lookups_usernames) {
80 | var p = new cloneObject(options);
81 | p.title = 'Total number of usernames looked up';
82 | p.series = [{color: 'green'}];
83 | chart_usernames = new Chart('chart-usernames', p);
84 | }
85 | if (chart_auths === null && numbers.auths) {
86 | var p = new cloneObject(options);
87 | p.title = 'Authentications';
88 | p.series = [{color: 'red'}];
89 | chart_auths = new Chart('chart-auths', p);
90 | }
91 |
92 | if (numbers.lookups_json)
93 | chart_jsons.add_value(numbers.lookups_json);
94 | if (numbers.lookups_jsonp)
95 | chart_jsonps.add_value(numbers.lookups_jsonp);
96 | if (numbers.lookups_usernames)
97 | chart_usernames.add_value(numbers.lookups_usernames);
98 | if (numbers.auths)
99 | chart_auths.add_value(numbers.auths);
100 |
101 | }
102 |
103 | function incr_number(key, num) {
104 | var before = $(key).text();
105 | if (before !== '' + tsep(num)) {
106 | // there's a change!
107 | $(key).fadeTo(200, 0.1, function() {
108 | $(this).text(tsep(num)).fadeTo(300, 1.0);
109 | });
110 | }
111 | }
112 |
113 | function process_response(response) {
114 | if (response.lookups_json && response.lookups_jsonp)
115 | incr_number('#lookups-total', response.lookups_json + response.lookups_jsonp);
116 | if (response.lookups_json)
117 | incr_number('#lookups-json', response.lookups_json);
118 | if (response.lookups_jsonp)
119 | incr_number('#lookups-jsonp', response.lookups_jsonp);
120 | if (response.lookups_usernames)
121 | incr_number('#lookups-usernames', response.lookups_usernames);
122 | if (response.auths)
123 | incr_number('#auths', response.auths);
124 | _set_up_charts(response);
125 | }
126 |
127 | /*
128 | function update() {
129 | $.getJSON(JSON_URL, function(response) {
130 | process_response(response);
131 | var change = !compareAssociativeArrays(response, previous);
132 | previous = response;
133 |
134 | var t;
135 | if (change) {
136 | t = 1;
137 | incr = 0;
138 | _set_up_charts(response);
139 | } else {
140 | t = Math.min(3 + incr, 10);
141 | incr += 0.1;
142 | }
143 | setTimeout(update, Math.ceil(t * 1000));
144 | });
145 | }
146 | */
147 |
148 | window.WEB_SOCKET_DEBUG = true;
149 | function setupSocket() {
150 | var socket = new io.connect('http://' + window.location.host, {
151 | port: 8888
152 | });
153 |
154 | socket.on('connect', function() {
155 | socket.on('message', function(msg) {
156 | process_response(msg);
157 | });
158 |
159 | });
160 | }
161 |
162 | $(function() {
163 | setupSocket();
164 | });
165 |
--------------------------------------------------------------------------------
/static/js/socket.io.min.js:
--------------------------------------------------------------------------------
1 | /*! Socket.IO.min.js build:0.8.7, production. Copyright(c) 2011 LearnBoost MIT Licensed */
2 | (function(a,b){var c=a;c.version="0.8.7",c.protocol=1,c.transports=[],c.j=[],c.sockets={},c.connect=function(a,d){var e=c.util.parseUri(a),f,g;b&&b.location&&(e.protocol=e.protocol||b.location.protocol.slice(0,-1),e.host=e.host||(b.document?b.document.domain:b.location.hostname),e.port=e.port||b.location.port),f=c.util.uniqueUri(e);var h={host:e.host,secure:"https"==e.protocol,port:e.port||("https"==e.protocol?443:80),query:e.query||""};c.util.merge(h,d);if(h["force new connection"]||!c.sockets[f])g=new c.Socket(h);!h["force new connection"]&&g&&(c.sockets[f]=g),g=g||c.sockets[f];return g.of(e.path.length>1?e.path:"")}})("object"==typeof module?module.exports:this.io={},this),function(a,b){var c=a.util={},d=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,e=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];c.parseUri=function(a){var b=d.exec(a||""),c={},f=14;while(f--)c[e[f]]=b[f]||"";return c},c.uniqueUri=function(a){var c=a.protocol,d=a.host,e=a.port;"document"in b?(d=d||document.domain,e=e||(c=="https"&&document.location.protocol!=="https:"?443:document.location.port)):(d=d||"localhost",!e&&c=="https"&&(e=443));return(c||"http")+"://"+d+":"+(e||80)},c.query=function(a,b){var d=c.chunkQuery(a||""),e=[];c.merge(d,c.chunkQuery(b||""));for(var f in d)d.hasOwnProperty(f)&&e.push(f+"="+d[f]);return e.length?"?"+e.join("&"):""},c.chunkQuery=function(a){var b={},c=a.split("&"),d=0,e=c.length,f;for(;db.length?a:b,f=a.length>b.length?b:a;for(var g=0,h=f.length;g0&&a.splice(0,1)[0]!=c.transport.name);a.length?h(a):c.publish("connect_failed")}}},c.options["connect timeout"]))})}c.sessionid=d,c.closeTimeout=f*1e3,c.heartbeatTimeout=e*1e3,c.transports=b.util.intersect(g.split(","),c.options.transports),h(),c.once("connect",function(){clearTimeout(c.connectTimeoutTimer),a&&typeof a=="function"&&a()})});return this},d.prototype.packet=function(a){this.connected&&!this.doBuffer?this.transport.packet(a):this.buffer.push(a);return this},d.prototype.setBuffer=function(a){this.doBuffer=a,!a&&this.connected&&this.buffer.length&&(this.transport.payload(this.buffer),this.buffer=[])},d.prototype.disconnect=function(){this.connected&&(this.open&&this.of("").packet({type:"disconnect"}),this.onDisconnect("booted"));return this},d.prototype.disconnectSync=function(){var a=b.util.request(),c=this.resource+"/"+b.protocol+"/"+this.sessionid;a.open("GET",c,!0),this.onDisconnect("booted")},d.prototype.isXDomain=function(){var a=c.location.port||("https:"==c.location.protocol?443:80);return this.options.host!==c.location.hostname||this.options.port!=a},d.prototype.onConnect=function(){this.connected||(this.connected=!0,this.connecting=!1,this.doBuffer||this.setBuffer(!1),this.emit("connect"))},d.prototype.onOpen=function(){this.open=!0},d.prototype.onClose=function(){this.open=!1},d.prototype.onPacket=function(a){this.of(a.endpoint).onPacket(a)},d.prototype.onError=function(a){a&&a.advice&&a.advice==="reconnect"&&this.connected&&(this.disconnect(),this.reconnect()),this.publish("error",a&&a.reason?a.reason:a)},d.prototype.onDisconnect=function(a){var b=this.connected;this.connected=!1,this.connecting=!1,this.open=!1,b&&(this.transport.close(),this.transport.clearTimeouts(),this.publish("disconnect",a),"booted"!=a&&this.options.reconnect&&!this.reconnecting&&this.reconnect())},d.prototype.reconnect=function(){function f(){if(!!a.reconnecting){if(a.connected)return e();if(a.connecting&&a.reconnecting)return a.reconnectionTimer=setTimeout(f,1e3);a.reconnectionAttempts++>=b?a.redoTransports?(a.publish("reconnect_failed"),e()):(a.on("connect_failed",f),a.options["try multiple transports"]=!0,a.transport=a.getTransport(),a.redoTransports=!0,a.connect()):(a.reconnectionDelay=10:!1},c.xdomainCheck=function(){return!0},typeof window!="undefined"&&(WEB_SOCKET_DISABLE_AUTO_INITIALIZATION=!0),b.transports.push("flashsocket")}("undefined"!=typeof io?io.Transport:module.exports,"undefined"!=typeof io?io:module.parent.exports);if("undefined"!=typeof window)var swfobject=function(){function V(b){var c=/[\\\"<>\.;]/,d=c.exec(b)!=null;return d&&typeof encodeURIComponent!=a?encodeURIComponent(b):b}function U(a,b){if(!!x){var c=b?"visible":"hidden";t&&P(a)?P(a).style.visibility=c:T("#"+a,"visibility:"+c)}}function T(c,d,e,f){if(!y.ie||!y.mac){var g=i.getElementsByTagName("head")[0];if(!g)return;var h=e&&typeof e=="string"?e:"screen";f&&(v=null,w=null);if(!v||w!=h){var j=Q("style");j.setAttribute("type","text/css"),j.setAttribute("media",h),v=g.appendChild(j),y.ie&&y.win&&typeof i.styleSheets!=a&&i.styleSheets.length>0&&(v=i.styleSheets[i.styleSheets.length-1]),w=h}y.ie&&y.win?v&&typeof v.addRule==b&&v.addRule(c,d):v&&typeof i.createTextNode!=a&&v.appendChild(i.createTextNode(c+" {"+d+"}"))}}function S(a){var b=y.pv,c=a.split(".");c[0]=parseInt(c[0],10),c[1]=parseInt(c[1],10)||0,c[2]=parseInt(c[2],10)||0;return b[0]>c[0]||b[0]==c[0]&&b[1]>c[1]||b[0]==c[0]&&b[1]==c[1]&&b[2]>=c[2]?!0:!1}function R(a,b,c){a.attachEvent(b,c),o[o.length]=[a,b,c]}function Q(a){return i.createElement(a)}function P(a){var b=null;try{b=i.getElementById(a)}catch(c){}return b}function O(a){var b=P(a);if(b){for(var c in b)typeof b[c]=="function"&&(b[c]=null);b.parentNode.removeChild(b)}}function N(a){var b=P(a);b&&b.nodeName=="OBJECT"&&(y.ie&&y.win?(b.style.display="none",function(){b.readyState==4?O(a):setTimeout(arguments.callee,10)}()):b.parentNode.removeChild(b))}function M(a,b,c){var d=Q("param");d.setAttribute("name",b),d.setAttribute("value",c),a.appendChild(d)}function L(c,d,f){var g,h=P(f);if(y.wk&&y.wk<312)return g;if(h){typeof c.id==a&&(c.id=f);if(y.ie&&y.win){var i="";for(var j in c)c[j]!=Object.prototype[j]&&(j.toLowerCase()=="data"?d.movie=c[j]:j.toLowerCase()=="styleclass"?i+=' class="'+c[j]+'"':j.toLowerCase()!="classid"&&(i+=" "+j+'="'+c[j]+'"'));var k="";for(var l in d)d[l]!=Object.prototype[l]&&(k+='');h.outerHTML='",n[n.length]=c.id,g=P(c.id)}else{var m=Q(b);m.setAttribute("type",e);for(var o in c)c[o]!=Object.prototype[o]&&(o.toLowerCase()=="styleclass"?m.setAttribute("class",c[o]):o.toLowerCase()!="classid"&&m.setAttribute(o,c[o]));for(var p in d)d[p]!=Object.prototype[p]&&p.toLowerCase()!="movie"&&M(m,p,d[p]);h.parentNode.replaceChild(m,h),g=m}}return g}function K(a){var c=Q("div");if(y.win&&y.ie)c.innerHTML=a.innerHTML;else{var d=a.getElementsByTagName(b)[0];if(d){var e=d.childNodes;if(e){var f=e.length;for(var g=0;g0)for(var c=0;c0){var g=P(d);if(g)if(S(m[c].swfVersion)&&!(y.wk&&y.wk<312))U(d,!0),e&&(f.success=!0,f.ref=G(d),e(f));else if(m[c].expressInstall&&H()){var h={};h.data=m[c].expressInstall,h.width=g.getAttribute("width")||"0",h.height=g.getAttribute("height")||"0",g.getAttribute("class")&&(h.styleclass=g.getAttribute("class")),g.getAttribute("align")&&(h.align=g.getAttribute("align"));var i={},j=g.getElementsByTagName("param"),k=j.length;for(var l=0;l= 10.0.0 is required.");return}location.protocol=="file:"&&a.error("WARNING: web-socket-js doesn't work in file:///... URL unless you set Flash Security Settings properly. Open the page via Web server i.e. http://..."),WebSocket=function(a,b,c,d,e){var f=this;f.__id=WebSocket.__nextId++,WebSocket.__instances[f.__id]=f,f.readyState=WebSocket.CONNECTING,f.bufferedAmount=0,f.__events={},b?typeof b=="string"&&(b=[b]):b=[],setTimeout(function(){WebSocket.__addTask(function(){WebSocket.__flash.create(f.__id,a,b,c||null,d||0,e||null)})},0)},WebSocket.prototype.send=function(a){if(this.readyState==WebSocket.CONNECTING)throw"INVALID_STATE_ERR: Web Socket connection has not been established";var b=WebSocket.__flash.send(this.__id,encodeURIComponent(a));if(b<0)return!0;this.bufferedAmount+=b;return!1},WebSocket.prototype.close=function(){this.readyState!=WebSocket.CLOSED&&this.readyState!=WebSocket.CLOSING&&(this.readyState=WebSocket.CLOSING,WebSocket.__flash.close(this.__id))},WebSocket.prototype.addEventListener=function(a,b,c){a in this.__events||(this.__events[a]=[]),this.__events[a].push(b)},WebSocket.prototype.removeEventListener=function(a,b,c){if(a in this.__events){var d=this.__events[a];for(var e=d.length-1;e>=0;--e)if(d[e]===b){d.splice(e,1);break}}},WebSocket.prototype.dispatchEvent=function(a){var b=this.__events[a.type]||[];for(var c=0;c