Changeset 28763 in spip-zone


Ignore:
Timestamp:
May 22, 2009, 2:40:02 PM (12 years ago)
Author:
eric@…
Message:

Relooking du plugin jquery en 1.5
Suppression des fichiers inutiles
Passage en version 0.2

Location:
_plugins_/_dev_/nyroceros
Files:
3 deleted
3 edited
1 moved

Legend:

Unmodified
Added
Removed
  • _plugins_/_dev_/nyroceros/js/jquery.nyroModal-1.5.0.js

    r28738 r28763  
    66 * Licensed under the MIT license
    77 *
    8  * $Date: 2008-10-22 (Wed, 22 Oct 2008) $
    9  * $version: 1.2.8
     8 * $Date: 2009-05-14 (Thu, 14 May 2009) $
     9 * $version: 1.5.0
    1010 */
    1111jQuery(function($) {
     
    1515        // -------------------------------------------------------
    1616
    17         var isIE6 = ($.browser.msie && parseInt($.browser.version.substr(0,1)) < 7);
     17        var userAgent = navigator.userAgent.toLowerCase();
     18        //var browserVersion = (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [0,'0'])[1];
     19        var browserVersion = (userAgent.match(/.+(?:rv|webkit|khtml|opera|msie)[\/: ]([\d.]+)/ ) || [0,'0'])[1];
     20
     21        var isIE6 = (/msie/.test(userAgent) && !/opera/.test(userAgent) && parseInt(browserVersion) < 7 && !window.XMLHttpRequest);
    1822        var body = $('body');
    1923
    2024        var currentSettings;
     25
     26        var shouldResize = false;
     27       
     28        var gallery = {};
    2129
    2230        // To know if the fix for the Issue 10 should be applied (or has been applied)
     
    3341                dataReady: false,
    3442                anim: false,
     43                animContent: false,
    3544                loadingShown: false,
    3645                transition: false,
     46                resizing: false,
     47                closing: false,
    3748                error: false,
     49                blocker: null,
     50                blockerVars: null,
    3851                full: null,
    3952                bg: null,
     
    4255                content: null,
    4356                wrapper: null,
    44                 closing: false,
    4557                contentWrapper: null,
    46                 scripts: new Array()
     58                scripts: new Array(),
     59                scriptsShown: new Array()
    4760        };
    4861
     
    5063        var resized = {
    5164                width: false,
    52                 height: false
     65                height: false,
     66                windowResizing: false
    5367        };
     68       
     69        var initSettingsSize = {
     70                width: null,
     71                height: null,
     72                windowResizing: true
     73        };
     74       
     75        var windowResizeTimeout;
    5476
    5577
     
    6284                if (!this)
    6385                        return false;
    64                 return this.each(function(){
     86                return this.each(function() {
     87                        var me = $(this);
    6588                        if (this.nodeName.toLowerCase() == 'form') {
    66                                 $(this).submit(function(e) {
     89                                me
     90                                .unbind('submit.nyroModal')
     91                                .bind('submit.nyroModal', function(e) {
     92                                        if (me.data('nyroModalprocessing'))
     93                                                return true;
    6794                                        if (this.enctype == 'multipart/form-data') {
    6895                                                processModal($.extend(settings, {
     
    78105                                });
    79106                        } else {
    80                                 $(this).click(function(e) {
     107                                me
     108                                .unbind('click.nyroModal')
     109                                .bind('click.nyroModal', function(e) {
    81110                                        e.preventDefault();
    82111                                        processModal($.extend(settings, {
     
    110139        $.nyroModalSettings = function(settings, deep1, deep2) {
    111140                setCurrentSettings(settings, deep1, deep2);
    112                 if (!deep1 && modal.ready) {
    113                         if (settings.bgColor)
     141                if (!deep1 && modal.started) {
     142                        if (modal.bg && settings.bgColor)
    114143                                currentSettings.updateBgColor(modal, currentSettings, function(){});
    115144
    116                         if ((modal.dataReady && !modal.anim && !modal.transition) && (settings.width || settings.height)) {
    117                                 calculateSize(true);
    118 
    119                                 if (fixFF)
    120                                         modal.content.css({position: ''});
    121                                 currentSettings.resize(modal, currentSettings, function() {
     145                        if (modal.contentWrapper && settings.title)
     146                                setTitle();
     147
     148                        if (!modal.error && (settings.windowResizing || (!modal.resizing && (('width' in settings && settings.width == currentSettings.width) || ('height' in settings && settings.height == currentSettings.height))))) {
     149                                modal.resizing = true;
     150                                if (modal.contentWrapper)
     151                                        calculateSize(true);
     152                                if (modal.contentWrapper && modal.contentWrapper.is(':visible') && !modal.animContent) {
    122153                                        if (fixFF)
    123                                                 modal.content.css({position: 'fixed'});
    124                                         if ($.isFunction(currentSettings.endResize))
    125                                                 currentSettings.endResize(modal, currentSettings);
    126                                 });
     154                                                modal.content.css({position: ''});
     155                                        currentSettings.resize(modal, currentSettings, function() {
     156                                                currentSettings.windowResizing = false;
     157                                                modal.resizing = false;
     158                                                if (fixFF)
     159                                                        modal.content.css({position: 'fixed'});
     160                                                if ($.isFunction(currentSettings.endResize))
     161                                                        currentSettings.endResize(modal, currentSettings);
     162                                        });
     163                                }
    127164                        }
    128165                }
     
    139176                var link = getGalleryLink(1);
    140177                if (link)
    141                         return link.nyroModalManual(currentSettings);
     178                        return link.nyroModalManual(getCurrentSettingsNew());
    142179                return false;
    143180        };
     
    148185                var link = getGalleryLink(-1);
    149186                if (link)
    150                         return link.nyroModalManual(currentSettings);
     187                        return link.nyroModalManual(getCurrentSettingsNew());
    151188                return false;
    152189        };
     
    159196        $.fn.nyroModal.settings = {
    160197                debug: false, // Show the debug in the background
     198
     199                blocker: false, // Element which will be blocked by the modal
    161200
    162201                modal: false, // Esc key or click backgrdound enabling or not
     
    188227                minHeight: 300, // Minimum height
    189228
    190                 resizeable: true, // Indicate if the content is resizable. Will be set to false for swf
     229                resizable: true, // Indicate if the content is resizable. Will be set to false for swf
    191230                autoSizable: true, // Indicate if the content is auto sizable. If not, the min size will be used
    192231
    193                 padding: 20, // padding for the max modal size
     232                padding: 25, // padding for the max modal size
    194233
    195234                regexImg: '[^\.]\.(jpg|jpeg|png|tiff|gif|bmp)\s*$', // Regex to find images
     235                addImageDivTitle: true, // Indicate if the div title should be inserted
    196236                defaultImgAlt: 'Image', // Default alt attribute for the images
    197237                setWidthImgTitle: true, // Set the width to the image title
    198                 rtl: true, // Right to left by default. Put to false for Hebrew or Left to Right language
     238                ltr: true, // Left to Right by default. Put to false for Hebrew or Right to Left language
     239
     240                gallery: null, // Gallery name if provided
     241                galleryLinks: '<a href="#" class="nyroModalPrev">Prev</a><a href="#"  class="nyroModalNext">Next</a>', // Use .nyroModalPrev and .nyroModalNext to set the navigation link
     242                galleryCounts: galleryCounts, // Callback to show the gallery count
     243               
     244                zIndexStart: 100,
    199245
    200246                css: { // Default CSS option for the nyroModal Div. Some will be overwritten or updated when using IE6
    201247                        bg: {
    202                                 zIndex: 100,
    203                                 position: 'fixed',
     248                                position: 'absolute',
     249                                overflow: 'hidden',
    204250                                top: 0,
    205251                                left: 0,
     
    208254                        },
    209255                        wrapper: {
    210                                 zIndex: 101,
    211                                 position: 'fixed',
     256                                position: 'absolute',
    212257                                top: '50%',
    213258                                left: '50%'
     
    219264                        },
    220265                        loading: {
    221                                 zIndex: 102,
    222                                 position: 'fixed',
     266                                position: 'absolute',
    223267                                top: '50%',
    224268                                left: '50%',
     
    234278                        formData: '<div class="wrapper"></div>',
    235279                        image: '<div class="wrapperImg"></div>',
    236                         gallery: '<div class="wrapperImg"><a href="#" class="nyroModalPrev">Prev</a><a href="#"  class="nyroModalNext">Next</a></div>', // Use .nyroModalPrev and .nyroModalNext to set the navigation link
    237280                        swf: '<div class="wrapperSwf"></div>',
    238281                        iframe: '<div class="wrapperIframe"></div>',
     282                        iframeForm: '<div class="wrapperIframe"></div>',
    239283                        manual: '<div class="wrapper"></div>'
    240284                },
    241285
    242286                closeButton: '<a href="#" class="nyroModalClose" id="closeBut" title="close">Close</a>', // Adding automaticly as the first child of #nyroModalWrapper
     287
     288                title: null, // Modal title
     289                titleFromIframe: true, // When using iframe in the same domain, try to get the title from it
    243290
    244291                openSelector: '.nyroModal', // selector for open a new modal. will be used to parse automaticly at page loading
     
    274321                endRemove: null // Will be called once the modal is totally gone
    275322        };
    276 
    277323
    278324        // -------------------------------------------------------
     
    287333                modal.started = true;
    288334                setDefaultCurrentSettings(settings);
     335                if (!modal.full)
     336                        modal.blockerVars = modal.blocker = null;
    289337                modal.error = false;
    290338                modal.closing = false;
    291339                modal.dataReady = false;
    292340                modal.scripts = new Array();
     341                modal.scriptsShown = new Array();
    293342
    294343                currentSettings.type = fileType();
     
    300349                url = currentSettings.url;
    301350
     351                initSettingsSize.width = currentSettings.width;
     352                initSettingsSize.height = currentSettings.height;
     353
    302354                if (currentSettings.type == 'swf') {
    303355                        // Swf is transforming as a raw content
    304                         currentSettings.resizable = false;
    305356                        setCurrentSettings({overflow: 'hidden'}, 'css', 'content');
    306357                        currentSettings.content = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+currentSettings.width+'" height="'+currentSettings.height+'"><param name="movie" value="'+url+'"></param>';
     
    314365
    315366                if (from) {
     367                        var jFrom = $(from);
    316368                        if (currentSettings.type == 'form') {
    317369                                var data = $(from).serializeArray();
     
    322374                                                url: url,
    323375                                                data: data,
    324                                                 type: from.method,
     376                                                type: jFrom.attr('method') ? jFrom.attr('method') : 'get',
    325377                                                success: ajaxLoaded,
    326378                                                error: loadingError
    327379                                        }));
    328                                 debug('Form Ajax Load: '+from.action);
     380                                debug('Form Ajax Load: '+jFrom.attr('action'));
    329381                                showModal();
    330382                        } else if (currentSettings.type == 'formData') {
    331383                                // Form with data. We're using a hidden iframe
    332384                                initModal();
    333                                 from.target = 'nyroModalIframe';
    334                                 from.action = url;
    335                                 $(from).prepend('<input type="hidden" name="'+currentSettings.formIndicator+'" value="1" />');
     385                                jFrom.attr('target', 'nyroModalIframe');
     386                                jFrom.attr('action', url);
     387                                jFrom.prepend('<input type="hidden" name="'+currentSettings.formIndicator+'" value="1" />');
    336388                                if (currentSettings.selector)
    337                                         $(from).prepend('<input type="hidden" name="'+currentSettings.selIndicator+'" value="'+currentSettings.selector.substring(1)+'" />');
    338                                 modal.tmp.html('<iframe frameborder="0" hspace="0" name="nyroModalIframe"></iframe>');
     389                                        jFrom.prepend('<input type="hidden" name="'+currentSettings.selIndicator+'" value="'+currentSettings.selector.substring(1)+'" />');
     390                                modal.tmp.html('<iframe frameborder="0" hspace="0" name="nyroModalIframe" src="javascript:false;"></iframe>');
    339391                                $('iframe', modal.tmp)
    340392                                        .css({
     
    344396                                        .error(loadingError)
    345397                                        .load(formDataLoaded);
    346                                 debug('Form Data Load: '+from.action);
     398                                debug('Form Data Load: '+jFrom.attr('action'));
    347399                                showModal();
    348400                                showContentOrLoading();
    349                         } else if (currentSettings.type == 'image' || currentSettings.type == 'gallery') {
    350                                 var title = from.title || currentSettings.defaultImgAlt;
     401                        } else if (currentSettings.type == 'image') {
     402                                debug('Image Load: '+url);
     403                                var title = jFrom.attr('title') || currentSettings.defaultImgAlt;
    351404                                initModal();
    352405                                modal.tmp.html('<img id="nyroModalImg" />').find('img').attr('alt', title);
    353                                 debug('Image Load: '+url);
     406                                modal.tmp.css({lineHeight: 0});
    354407                                $('img', modal.tmp)
    355408                                        .error(loadingError)
     
    359412                                                var w = modal.tmp.width();
    360413                                                var h = modal.tmp.height();
     414                                                modal.tmp.css({lineHeight: ''});
     415                                                resized.width = w;
     416                                                resized.height = h;
    361417                                                setCurrentSettings({
    362418                                                        width: w,
     
    365421                                                        imgHeight: h
    366422                                                });
     423                                                initSettingsSize.width = w;
     424                                                initSettingsSize.height = h;
    367425                                                setCurrentSettings({overflow: 'hidden'}, 'css', 'content');
    368426                                                modal.dataReady = true;
     
    372430                                        .attr('src', url);
    373431                                showModal();
     432                        } else if (currentSettings.type == 'iframeForm') {
     433                                initModal();
     434                                modal.tmp.html('<iframe frameborder="0" hspace="0" src="javascript:false;" name="nyroModalIframe" id="nyroModalIframe"></iframe>');
     435                                debug('Iframe Form Load: '+url);
     436                                $('iframe', modal.tmp).eq(0)
     437                                        .css({
     438                                                width: '100%',
     439                                                height: $.support.boxModel? '99%' : '100%'
     440                                        })
     441                                        .load(function(e) {
     442                                                if (currentSettings.titleFromIframe && url.indexOf(window.location.hostname) > -1)
     443                                                        $.nyroModalSettings({title: $('iframe', modal.full).contents().find('title').text()});
     444                                        });
     445                                modal.dataReady = true;
     446                                showModal();
    374447                        } else if (currentSettings.type == 'iframe') {
    375448                                initModal();
    376                                 modal.tmp.html('<iframe frameborder="0" hspace="0" src="'+url+'" name="nyroModalIframe"></iframe>');
     449                                modal.tmp.html('<iframe frameborder="0" hspace="0" src="'+url+'" name="nyroModalIframe" id="nyroModalIframe"></iframe>');
    377450                                debug('Iframe Load: '+url);
    378451                                $('iframe', modal.tmp).eq(0)
    379452                                        .css({
    380453                                                width: '100%',
    381                                                 height: '100%'
     454                                                height: $.support.boxModel? '99%' : '100%'
     455                                        })
     456                                        .load(function(e) {
     457                                                if (currentSettings.titleFromIframe && url.indexOf(window.location.hostname) > -1)
     458                                                        $.nyroModalSettings({title: $('iframe', modal.full).contents().find('title').text()});
    382459                                        });
    383                                 currentSettings.autoSizable = false;
    384460                                modal.dataReady = true;
    385461                                showModal();
     
    401477                                        modal.tmp.append(div.contents());
    402478                                }
     479                                initSettingsSize.width = w;
     480                                initSettingsSize.height = h;
    403481                                setCurrentSettings({
    404482                                        width: w,
     
    409487                                else
    410488                                        loadingError();
    411                                 showModal();
    412                                 showContentOrLoading();
     489                                if (!modal.ready)
     490                                        showModal();
     491                                else
     492                                        endHideContent();
    413493                        } else {
    414494                                debug('Ajax Load: '+url);
    415495                                setCurrentSettings({type: 'ajax'});
    416                                 var data = {};
     496                                var data = currentSettings.ajax.data || {};
    417497                                if (currentSettings.selector) {
    418                                         data = currentSettings.ajax.data || {};
    419                                         data[currentSettings.selIndicator] = currentSettings.selector.substring(1);
     498                                        if (typeof data == "string") {
     499                                                data+= '&'+currentSettings.selIndicator+'='+currentSettings.selector.substring(1);
     500                                        } else {
     501                                                data[currentSettings.selIndicator] = currentSettings.selector.substring(1);
     502                                        }
    420503                                }
    421                                 $.ajax($.extend({}, currentSettings.ajax, {
     504                                $.ajax($.extend(true, currentSettings.ajax, {
    422505                                        url: url,
    423506                                        success: ajaxLoaded,
     
    449532        function setDefaultCurrentSettings(settings) {
    450533                debug('setDefaultCurrentSettings');
    451                 currentSettings = $.extend({}, $.fn.nyroModal.settings, settings);
     534                currentSettings = $.extend(true, {}, $.fn.nyroModal.settings, settings);
    452535                currentSettings.selector = '';
    453536                currentSettings.borderW = 0;
     
    460543                if (modal.started) {
    461544                        if (deep1 && deep2) {
    462                                 $.extend(currentSettings[deep1][deep2], settings);
     545                                $.extend(true, currentSettings[deep1][deep2], settings);
    463546                        } else if (deep1) {
    464                                 $.extend(currentSettings[deep1], settings);
     547                                $.extend(true, currentSettings[deep1], settings);
    465548                        } else {
    466                                 $.extend(currentSettings, settings);
     549                                if (modal.animContent) {
     550                                        if ('width' in settings) {
     551                                                if (!modal.resizing) {
     552                                                        settings.setWidth = settings.width;
     553                                                        shouldResize = true;
     554                                                }
     555                                                delete settings['width'];
     556                                        }
     557                                        if ('height' in settings) {
     558                                                if (!modal.resizing) {
     559                                                        settings.setHeight = settings.height;
     560                                                        shouldResize = true;
     561                                                }
     562                                                delete settings['height'];
     563                                        }
     564                                }
     565                                $.extend(true, currentSettings, settings);
    467566                        }
    468567                } else {
    469568                        if (deep1 && deep2) {
    470                                 $.extend($.fn.nyroModal.settings[deep1][deep2], settings);
     569                                $.extend(true, $.fn.nyroModal.settings[deep1][deep2], settings);
    471570                        } else if (deep1) {
    472                                 $.extend($.fn.nyroModal.settings[deep1], settings);
     571                                $.extend(true, $.fn.nyroModal.settings[deep1], settings);
    473572                        } else {
    474                                 $.extend($.fn.nyroModal.settings, settings);
     573                                $.extend(true, $.fn.nyroModal.settings, settings);
    475574                        }
    476575                }
     
    479578        // Set the margin for postionning the element. Useful for IE6
    480579        function setMarginScroll() {
    481                 if (isIE6) {
     580                if (isIE6 && !modal.blocker) {
    482581                        if (document.documentElement) {
    483582                                currentSettings.marginScrollLeft = document.documentElement.scrollLeft;
     
    496595        function setMargin() {
    497596                setMarginScroll();
    498                 currentSettings.marginLeft = -(currentSettings.width+currentSettings.borderW)/2 + currentSettings.marginScrollLeft;
    499                 currentSettings.marginTop = -(currentSettings.height+currentSettings.borderH)/2 + currentSettings.marginScrollTop;
     597                currentSettings.marginLeft = -(currentSettings.width+currentSettings.borderW)/2;
     598                currentSettings.marginTop = -(currentSettings.height+currentSettings.borderH)/2;
     599                if (!modal.blocker) {
     600                        currentSettings.marginLeft+= currentSettings.marginScrollLeft;
     601                        currentSettings.marginTop+= currentSettings.marginScrollTop;
     602                }
    500603        }
    501604
    502605        // Set the margin for the current loading
    503         function setMarginloading() {
     606        function setMarginLoading() {
    504607                setMarginScroll();
    505608                var outer = getOuter(modal.loading);
    506                 currentSettings.marginTopLoading = -(modal.loading.height() + outer.h.border + outer.h.padding)/2 + currentSettings.marginScrollTop;
    507                 currentSettings.marginLeftLoading = -(modal.loading.width() + outer.w.border + outer.w.padding)/2 + currentSettings.marginScrollLeft;
     609                currentSettings.marginTopLoading = -(modal.loading.height() + outer.h.border + outer.h.padding)/2;
     610                currentSettings.marginLeftLoading = -(modal.loading.width() + outer.w.border + outer.w.padding)/2;
     611                if (!modal.blocker) {
     612                        currentSettings.marginLefttLoading+= currentSettings.marginScrollLeft;
     613                        currentSettings.marginTopLoading+= currentSettings.marginScrollTop;
     614                }
     615        }
     616
     617        // Set the modal Title
     618        function setTitle() {
     619                var title = $('h1#nyroModalTitle', modal.contentWrapper);
     620                if (title.length)
     621                        title.text(currentSettings.title);
     622                else
     623                        modal.contentWrapper.prepend('<h1 id="nyroModalTitle">'+currentSettings.title+'</h1>');
    508624        }
    509625
     
    515631                                setCurrentSettings({color: 'white'}, 'css', 'bg');
    516632
     633                        var full = {
     634                                zIndex: currentSettings.zIndexStart,
     635                                position: 'fixed',
     636                                top: 0,
     637                                left: 0,
     638                                width: '100%',
     639                                height: '100%'
     640                        };
     641
     642                        var contain = body;
    517643                        var iframeHideIE = '';
    518                         if (isIE6) {
     644                        if (currentSettings.blocker) {
     645                                modal.blocker = contain = $(currentSettings.blocker);
     646                                var pos = modal.blocker.offset();
     647                                var w = modal.blocker.outerWidth();
     648                                var h = modal.blocker.outerHeight();
     649                                if (isIE6) {
     650                                        setCurrentSettings({
     651                                                height: '100%',
     652                                                width: '100%',
     653                                                top: 0,
     654                                                left: 0
     655                                        }, 'css', 'bg');
     656                                }
     657                                modal.blockerVars = {
     658                                        top: pos.top,
     659                                        left: pos.left,
     660                                        width: w,
     661                                        height: h
     662                                };
     663                                var plusTop = (/msie/.test(userAgent) ?0:getCurCSS(body.get(0), 'borderTopWidth'));
     664                                var plusLeft = (/msie/.test(userAgent) ?0:getCurCSS(body.get(0), 'borderLeftWidth'));
     665                                full = {
     666                                        position: 'absolute',
     667                                        top: pos.top + plusTop,
     668                                        left: pos.left + plusLeft,
     669                                        width: w,
     670                                        height: h
     671                                };
     672                        } else if (isIE6) {
    519673                                body.css({
    520674                                        height: body.height()+'px',
     
    525679                                $('html').css({overflow: 'hidden'});
    526680                                setCurrentSettings({
    527                                         position: 'absolute',
    528                                         height: '110%',
    529                                         width: '110%',
    530                                         top: currentSettings.marginScrollTop+'px',
    531                                         left: currentSettings.marginScrollLeft+'px'
    532                                 }, 'css', 'bg');
    533 
    534                                 setCurrentSettings({position: 'absolute'}, 'css', 'loading');
    535                                 setCurrentSettings({position: 'absolute'}, 'css', 'wrapper');
     681                                        css: {
     682                                                bg: {
     683                                                        position: 'absolute',
     684                                                        zIndex: currentSettings.zIndexStart+1,
     685                                                        height: '110%',
     686                                                        width: '110%',
     687                                                        top: currentSettings.marginScrollTop+'px',
     688                                                        left: currentSettings.marginScrollLeft+'px'
     689                                                },
     690                                                wrapper: { zIndex: currentSettings.zIndexStart+2 },
     691                                                loading: { zIndex: currentSettings.zIndexStart+3 }
     692                                        }
     693                                });
    536694
    537695                                iframeHideIE = $('<iframe id="nyroModalIframeHideIe"></iframe>')
     
    544702                        }
    545703
    546                         body.append($('<div id="nyroModalFull"><div id="nyroModalBg"></div><div id="nyroModalWrapper"><div id="nyroModalContent"></div></div><div id="nyrModalTmp"></div><div id="nyroModalLoading"></div></div>').hide());
    547 
    548                         modal.full = $('#nyroModalFull').show();
     704                        contain.append($('<div id="nyroModalFull"><div id="nyroModalBg"></div><div id="nyroModalWrapper"><div id="nyroModalContent"></div></div><div id="nyrModalTmp"></div><div id="nyroModalLoading"></div></div>').hide());
     705
     706                        modal.full = $('#nyroModalFull')
     707                                .css(full)
     708                                .show();
    549709                        modal.bg = $('#nyroModalBg')
    550710                                .css($.extend({
     
    575735                        }
    576736
    577                         $(document).keydown(keyHandler);
     737                        $(document).bind('keydown.nyroModal', keyHandler);
    578738                        modal.content.css({width: 'auto', height: 'auto'});
    579739                        modal.contentWrapper.css({width: 'auto', height: 'auto'});
    580                 }
     740                       
     741                        if (!currentSettings.blocker) {
     742                                $(window).bind('resize.nyroModal', function() {
     743                                        window.clearTimeout(windowResizeTimeout);
     744                                        windowResizeTimeout = window.setTimeout(windowResizeHandler, 200);
     745                                });
     746                        }
     747                }
     748        }
     749       
     750        function windowResizeHandler() {
     751                $.nyroModalSettings(initSettingsSize);
    581752        }
    582753
     
    600771                        if (!currentSettings.modal)
    601772                                removeModal();
    602                 } else if (currentSettings.type == 'gallery' && modal.ready && modal.dataReady && !modal.anim && !modal.transition) {
     773                } else if (currentSettings.gallery && modal.ready && modal.dataReady && !modal.anim && !modal.transition) {
    603774                        if (e.keyCode == 39 || e.keyCode == 40) {
    604775                                e.preventDefault();
    605                                 $('.nyroModalNext', modal.content).eq(0).trigger('click');
     776                                $.nyroModalNext();
    606777                                return false;
    607778                        } else if (e.keyCode == 37 || e.keyCode == 38) {
    608779                                e.preventDefault();
    609                                 $('.nyroModalPrev', modal.content).eq(0).trigger('click');
     780                                $.nyroModalPrev();
    610781                                return false;
    611782                        }
     
    628799
    629800                if (from && from.nodeName) {
    630                         currentSettings.url = url = from.nodeName.toLowerCase() == 'form'? from.action : from.href;
    631 
    632                         if (from.rev == 'modal')
     801                        var jFrom = $(from);
     802                       
     803                        url = jFrom.attr(from.nodeName.toLowerCase() == 'form' ? 'action' : 'href');
     804                        if (!url)
     805                                url = location.href.substring(window.location.host.length+7);
     806                        currentSettings.url = url;
     807
     808                        if (jFrom.attr('rev') == 'modal')
    633809                                currentSettings.modal = true;
    634810
     811                        currentSettings.title = jFrom.attr('title');
     812
     813                        if (from && from.rel && from.rel.toLowerCase() != 'nofollow')
     814                                currentSettings.gallery = from.rel;
     815
     816                        var imgType = imageType(url, from);
     817                        if (imgType)
     818                                return imgType;
     819                       
     820                        if (isSwf(url))
     821                                return 'swf';
     822
     823                        var iframe = false;
    635824                        if (from.target && from.target.toLowerCase() == '_blank' || (from.hostname && from.hostname.replace(/:\d*$/,'') != window.location.hostname.replace(/:\d*$/,''))) {
    636                                 return 'iframe';
    637                         } else if (from.nodeName.toLowerCase() == 'form') {
     825                                iframe = true;
     826                        }
     827                        if (from.nodeName.toLowerCase() == 'form') {
     828                                if (iframe)
     829                                        return 'iframeForm';
    638830                                setCurrentSettings(extractUrlSel(url));
    639                                 if (from.enctype == 'multipart/form-data')
     831                                if (jFrom.attr('enctype') == 'multipart/form-data')
    640832                                        return 'formData';
    641833                                return 'form';
    642834                        }
     835                        if (iframe)
     836                                return 'iframe';
    643837                } else {
    644838                        url = currentSettings.url;
     
    648842                        if (!url)
    649843                                return null;
     844                               
     845                        if (isSwf(url))
     846                                return 'swf';
    650847
    651848                        var reg1 = new RegExp("^http://", "g");
     
    654851                }
    655852
     853                var imgType = imageType(url, from);
     854                if (imgType)
     855                        return imgType;
     856
     857                var tmp = extractUrlSel(url);
     858                setCurrentSettings(tmp);
     859
     860                if (!tmp.url)
     861                        return tmp.selector;
     862        }
     863
     864        function imageType(url, from) {
    656865                var image = new RegExp(currentSettings.regexImg, 'i');
    657866                if (image.test(url)) {
    658                         if (from && from.rel)
    659                                 return 'gallery';
    660                         else
    661                                 return 'image';
    662                 }
    663 
     867                        return 'image';
     868                }
     869        }
     870       
     871        function isSwf(url) {
    664872                var swf = new RegExp('[^\.]\.(swf)\s*$', 'i');
    665                 if (swf.test(url))
    666                         return 'swf';
    667 
    668                 var tmp = extractUrlSel(url);
    669                 setCurrentSettings(tmp);
    670 
    671                 if (!tmp.url)
    672                         return tmp.selector;
     873                return swf.test(url);
    673874        }
    674875
     
    710911                        .addClass(currentSettings.errorClass)
    711912                        .html(currentSettings.contentError);
    712                 $(currentSettings.closeSelector, modal.loading).click(removeModal);
    713                 setMarginloading();
     913                $(currentSettings.closeSelector, modal.loading)
     914                        .unbind('click.nyroModal')
     915                        .bind('click.nyroModal', removeModal);
     916                setMarginLoading();
    714917                modal.loading
    715918                        .css({
     
    729932                wrapContent();
    730933
     934                if (currentSettings.type == 'iframeForm') {
     935                        $(currentSettings.from)
     936                                .attr('target', 'nyroModalIframe')
     937                                .data('nyroModalprocessing', 1)
     938                                .submit()
     939                                .attr('target', '_blank')
     940                                .removeData('nyroModalprocessing');
     941                }
     942               
     943                if (!currentSettings.modal)
     944                        modal.wrapper.prepend(currentSettings.closeButton);
     945                               
    731946                if ($.isFunction(currentSettings.endFillContent))
    732947                        currentSettings.endFillContent(modal, currentSettings);
     
    734949                modal.content.append(modal.scripts);
    735950
    736                 var currentSettingsNew = $.extend({}, currentSettings);
     951                $(currentSettings.closeSelector, modal.contentWrapper)
     952                        .unbind('click.nyroModal')
     953                        .bind('click.nyroModal', removeModal);
     954                $(currentSettings.openSelector, modal.contentWrapper).nyroModal(getCurrentSettingsNew());
     955        }
     956
     957        // Get the current settings to be used in new links
     958        function getCurrentSettingsNew() {
     959                var currentSettingsNew = $.extend(true, {}, currentSettings);
    737960                if (resized.width)
    738961                        currentSettingsNew.width = null;
     962                else
     963                        currentSettingsNew.width = initSettingsSize.width;
    739964                if (resized.height)
    740965                        currentSettingsNew.height = null;
    741                 $(currentSettings.closeSelector, modal.contentWrapper).click(removeModal);
    742                 $(currentSettings.openSelector, modal.contentWrapper).nyroModal(currentSettingsNew);
     966                else
     967                        currentSettingsNew.height = initSettingsSize.height;
     968                currentSettingsNew.css.content.overflow = 'auto';
     969                return currentSettingsNew;
    743970        }
    744971
     
    751978                modal.contentWrapper.wrapInner(wrap);
    752979
    753                 if (currentSettings.type == 'gallery') {
     980                if (currentSettings.gallery) {
    754981                        // Set the action for the next and prev button (or remove them)
     982                        modal.content.append(currentSettings.galleryLinks);
     983                       
     984                        gallery.links = $('[rel="'+currentSettings.gallery+'"]');
     985                        gallery.index = gallery.links.index(currentSettings.from);
     986                       
     987                        if (currentSettings.galleryCounts && $.isFunction(currentSettings.galleryCounts))
     988                                currentSettings.galleryCounts(gallery.index + 1, gallery.links.length, modal, currentSettings);
     989
     990                        var currentSettingsNew = getCurrentSettingsNew();
    755991
    756992                        var linkPrev = getGalleryLink(-1);
    757993                        if (linkPrev) {
    758                                 $('.nyroModalPrev', modal.contentWrapper)
     994                                var prev = $('.nyroModalPrev', modal.contentWrapper)
    759995                                        .attr('href', linkPrev.attr('href'))
    760996                                        .click(function(e) {
    761997                                                e.preventDefault();
    762                                                 linkPrev.nyroModalManual(currentSettings);
     998                                                $.nyroModalPrev();
    763999                                                return false;
    7641000                                        });
     1001                                if (isIE6 && currentSettings.type == 'swf') {
     1002                                        prev.before($('<iframe id="nyroModalIframeHideIeGalleryPrev"></iframe>').css({
     1003                                                                                        position: prev.css('position'),
     1004                                                                                        top: prev.css('top'),
     1005                                                                                        left: prev.css('left'),
     1006                                                                                        width: prev.width(),
     1007                                                                                        height: prev.height(),
     1008                                                                                        opacity: 0,
     1009                                                                                        border: 'none'
     1010                                                                                }));
     1011                                }
    7651012                        } else {
    7661013                                $('.nyroModalPrev', modal.contentWrapper).remove();
     
    7681015                        var linkNext = getGalleryLink(1);
    7691016                        if (linkNext) {
    770                                 $('.nyroModalNext', modal.contentWrapper)
     1017                                var next = $('.nyroModalNext', modal.contentWrapper)
    7711018                                        .attr('href', linkNext.attr('href'))
    7721019                                        .click(function(e) {
    7731020                                                e.preventDefault();
    774                                                 linkNext.nyroModalManual(currentSettings);
     1021                                                $.nyroModalNext();
    7751022                                                return false;
    7761023                                        });
     1024                                if (isIE6 && currentSettings.type == 'swf') {
     1025                                        next.before($('<iframe id="nyroModalIframeHideIeGalleryNext"></iframe>')
     1026                                                                        .css($.extend({}, {
     1027                                                                                        position: next.css('position'),
     1028                                                                                        top: next.css('top'),
     1029                                                                                        left: next.css('left'),
     1030                                                                                        width: next.width(),
     1031                                                                                        height: next.height(),
     1032                                                                                        opacity: 0,
     1033                                                                                        border: 'none'
     1034                                                                                })));
     1035                                }
    7771036                        } else {
    7781037                                $('.nyroModalNext', modal.contentWrapper).remove();
    7791038                        }
    7801039                }
    781 
     1040               
    7821041                calculateSize();
    7831042        }
    784 
     1043       
    7851044        function getGalleryLink(dir) {
    786                 if (currentSettings.type == 'gallery') {
    787                         if (!currentSettings.rtl)
     1045                if (currentSettings.gallery) {
     1046                        if (!currentSettings.ltr)
    7881047                                dir *= -1;
    789                         // next
    790                         var gallery = $('[rel="'+currentSettings.from.rel+'"]');
    791                         var currentIndex = gallery.index(currentSettings.from);
    792                         var index = currentIndex + dir;
    793                         if (index >= 0 && index < gallery.length)
    794                                 return gallery.eq(index);
     1048                        var index = gallery.index + dir;
     1049                        if (index >= 0 && index < gallery.links.length)
     1050                                return gallery.links.eq(index);
    7951051                }
    7961052                return false;
     
    8011057                debug('calculateSize');
    8021058
    803                 if (!modal.wrapper)
    804                         modal.wrapper = modal.contentWrapper.children(':first');
     1059                modal.wrapper = modal.contentWrapper.children('div:first');
    8051060
    8061061                resized.width = false;
    8071062                resized.height = false;
     1063                if (false && !currentSettings.windowResizing) {
     1064                        initSettingsSize.width = currentSettings.width;
     1065                        initSettingsSize.height = currentSettings.height;
     1066                }
     1067               
    8081068                if (currentSettings.autoSizable && (!currentSettings.width || !currentSettings.height)) {
    809                         modal.contentWrapper.css({opacity: 0}).show();
     1069                        modal.contentWrapper
     1070                                .css({
     1071                                        opacity: 0,
     1072                                        width: 'auto',
     1073                                        height: 'auto'
     1074                                })
     1075                                .show();
    8101076                        var tmp = {
    8111077                                width: 'auto',
    8121078                                height: 'auto'
    8131079                        };
    814                         if (currentSettings.width)
     1080                        if (currentSettings.width) {
    8151081                                tmp.width = currentSettings.width;
    816                         if (currentSettings.height)
    817                                 tmp.height = currentSettings.height;
     1082                        } else if (currentSettings.type == 'iframe') {
     1083                                tmp.width = currentSettings.minWidth;
     1084                        }
     1085                               
     1086                        if (currentSettings.height) {
     1087                                tmp.height = currentSettings.height
     1088                        } else if (currentSettings.type == 'iframe') {
     1089                                tmp.height = currentSettings.minHeight;
     1090                        }
     1091                       
    8181092                        modal.content.css(tmp);
    8191093                        if (!currentSettings.width) {
    820                                 currentSettings.width = modal.content.width();
     1094                                currentSettings.width = modal.content.outerWidth(true);
    8211095                                resized.width = true;
    8221096                        }
    8231097                        if (!currentSettings.height) {
    824                                 currentSettings.height = modal.content.height();
     1098                                currentSettings.height = modal.content.outerHeight(true);
    8251099                                resized.height = true;
    8261100                        }
    827                         modal.contentWrapper.hide().css({opacity: 1});
    828                 }
    829 
    830                 currentSettings.width = Math.max(currentSettings.width, currentSettings.minWidth);
    831                 currentSettings.height = Math.max(currentSettings.height, currentSettings.minHeight);
     1101                        modal.contentWrapper.css({opacity: 1});
     1102                        if (!resizing)
     1103                                modal.contentWrapper.hide();
     1104                }
     1105
     1106                if (currentSettings.type != 'image' && currentSettings.type != 'swf') {
     1107                        currentSettings.width = Math.max(currentSettings.width, currentSettings.minWidth);
     1108                        currentSettings.height = Math.max(currentSettings.height, currentSettings.minHeight);
     1109                }
    8321110
    8331111                var outerWrapper = getOuter(modal.contentWrapper);
     
    8511129
    8521130                if (currentSettings.resizable) {
    853                         var maxHeight = $(window).height()
    854                                         - currentSettings.padding*2
    855                                         - outerWrapper.h.border
    856                                         - (tmp.wrapper.height - currentSettings.height);
    857                         var maxWidth = $(window).width()
    858                                         - currentSettings.padding*2
    859                                         - outerWrapper.w.border
    860                                         - (tmp.wrapper.width - currentSettings.width);
     1131                        var maxHeight = modal.blockerVars? modal.blockerVars.height : $(window).height()
     1132                                                                - outerWrapper.h.border
     1133                                                                - (tmp.wrapper.height - currentSettings.height);
     1134                        var maxWidth = modal.blockerVars? modal.blockerVars.width : $(window).width()
     1135                                                                - outerWrapper.w.border
     1136                                                                - (tmp.wrapper.width - currentSettings.width);
     1137                        maxHeight-= currentSettings.padding*2;
     1138                        maxWidth-= currentSettings.padding*2;
    8611139
    8621140                        if (tmp.content.height > maxHeight || tmp.content.width > maxWidth) {
    8631141                                // We're gonna resize the modal as it will goes outside the view port
    864                                 if (currentSettings.type == 'image' || currentSettings.type == 'gallery') {
     1142                                if (currentSettings.type == 'image' || currentSettings.type == 'swf') {
    8651143                                        // An image is resized proportionnaly
    866                                         var diffW = tmp.content.width - currentSettings.imgWidth;
    867                                         var diffH = tmp.content.height - currentSettings.imgHeight;
     1144                                        var useW = currentSettings.imgWidth?currentSettings.imgWidth : currentSettings.width;
     1145                                        var useH = currentSettings.imgHeight?currentSettings.imgHeight : currentSettings.height;
     1146                                        var diffW = tmp.content.width - useW;
     1147                                        var diffH = tmp.content.height - useH;
    8681148                                                if (diffH < 0) diffH = 0;
    8691149                                                if (diffW < 0) diffW = 0;
    8701150                                        var calcH = maxHeight - diffH;
    8711151                                        var calcW = maxWidth - diffW;
    872                                         var ratio = Math.min(calcH/currentSettings.imgHeight, calcW/currentSettings.imgWidth);
    873 
    874                                         calcH = Math.floor(currentSettings.imgHeight*ratio);
    875                                         calcW = Math.floor(currentSettings.imgWidth*ratio);
    876                                         $('img#nyroModalImg', modal.content).css({
    877                                                 height: calcH+'px',
    878                                                 width: calcW+'px'
    879                                         });
     1152                                        var ratio = Math.min(calcH/useH, calcW/useW);
     1153                                        calcW = Math.floor(useW*ratio);
     1154                                        calcH = Math.floor(useH*ratio);
    8801155                                        tmp.content.height = calcH + diffH;
    8811156                                        tmp.content.width = calcW + diffW;
     
    8951170                        }
    8961171                }
     1172               
     1173                if (currentSettings.type == 'swf') {
     1174                        $('object, embed', modal.content)
     1175                                .attr('width', tmp.content.width)
     1176                                .attr('height', tmp.content.height);
     1177                } else if (currentSettings.type == 'image') {
     1178                        $('img', modal.content).css({
     1179                                width: tmp.content.width,
     1180                                height: tmp.content.height
     1181                        });
     1182                }
    8971183
    8981184                modal.content.css($.extend({}, tmp.content, currentSettings.css.content));
    8991185                modal.wrapper.css($.extend({}, tmp.wrapper2, currentSettings.css.wrapper2));
    9001186
    901                 if (!resizing) {
     1187                if (!resizing)
    9021188                        modal.contentWrapper.css($.extend({}, tmp.wrapper, currentSettings.css.wrapper));
    903                         if (currentSettings.type == 'image' || currentSettings.type == 'gallery') {
    904                                 // Adding the title for the image
    905                                 var title = $('img', modal.content).attr('alt');
    906                                 $('img', modal.content).removeAttr('alt');
    907                                 if (title != currentSettings.defaultImgAlt) {
    908                                         var divTitle = $('<div>'+title+'</div>');
     1189
     1190                if (currentSettings.type == 'image' && currentSettings.addImageDivTitle) {
     1191                        // Adding the title for the image
     1192                        $('img', modal.content).removeAttr('alt');
     1193                        var divTitle = $('div', modal.content);
     1194                        if (currentSettings.title != currentSettings.defaultImgAlt && currentSettings.title) {
     1195                                if (divTitle.length == 0) {
     1196                                        divTitle = $('<div>'+currentSettings.title+'</div>');
    9091197                                        modal.content.append(divTitle);
    910                                         if (currentSettings.setWidthImgTitle) {
    911                                                 var outerDivTitle = getOuter(divTitle);
    912                                                 divTitle.css({width: (tmp.content.width + outerContent.w.padding - outerDivTitle.w.total)+'px'});
    913                                         }
    9141198                                }
    915                         }
    916 
    917                         if (!currentSettings.modal)
    918                                 modal.contentWrapper.prepend(currentSettings.closeButton);
    919                 }
     1199                                if (currentSettings.setWidthImgTitle) {
     1200                                        var outerDivTitle = getOuter(divTitle);
     1201                                        divTitle.css({width: (tmp.content.width + outerContent.w.padding - outerDivTitle.w.total)+'px'});
     1202                                }
     1203                        } else if (divTitle.length = 0) {
     1204                                divTitle.remove();
     1205                        }
     1206                }
     1207
     1208                if (currentSettings.title)
     1209                        setTitle();
     1210
    9201211                tmp.wrapper.borderW = outerWrapper.w.border;
    9211212                tmp.wrapper.borderH = outerWrapper.h.border;
     
    9301221                        e.preventDefault();
    9311222                if (modal.full && modal.ready) {
     1223                        $(document).unbind('keydown.nyroModal');
     1224                        if (!currentSettings.blocker)
     1225                                $(window).unbind('resize.nyroModal');
    9321226                        modal.ready = false;
    9331227                        modal.anim = true;
     
    9721266                                        if (modal.transition) {
    9731267                                                fillContent();
     1268                                                modal.animContent = true;
    9741269                                                currentSettings.hideTransition(modal, currentSettings, function() {
    9751270                                                        modal.loading.hide();
     
    9831278                                                                modal.loadingShown = false;
    9841279                                                                fillContent();
    985                                                                 setMarginloading();
    986                                                                 currentSettings.showContent(modal, $.extend({}, currentSettings), endShowContent);
     1280                                                                setMarginLoading();
     1281                                                                setMargin();
     1282                                                                modal.animContent = true;
     1283                                                                currentSettings.showContent(modal, currentSettings, endShowContent);
    9871284                                                        });
    9881285                                        }
     
    9951292                                else
    9961293                                        modal.loading.html(currentSettings.contentLoading);
    997                                 $(currentSettings.closeSelector, modal.loading).click(removeModal);
    998                                 setMarginloading();
     1294                                $(currentSettings.closeSelector, modal.loading)
     1295                                        .unbind('click.nyroModal')
     1296                                        .bind('click.nyroModal', removeModal);
     1297                                setMarginLoading();
    9991298                                currentSettings.showLoading(modal, currentSettings, function(){modal.anim=false;showContentOrLoading();});
    10001299                        }
     
    10211320        function formDataLoaded() {
    10221321                debug('formDataLoaded');
    1023                 currentSettings.from.action += currentSettings.selector;
    1024                 currentSettings.from.target = '';
     1322                var jFrom = $(currentSettings.from);
     1323                jFrom.attr('action', jFrom.attr('action')+currentSettings.selector);
     1324                jFrom.attr('target', '');
    10251325                $('input[name='+currentSettings.formIndicator+']', currentSettings.from).remove();
    10261326                var iframe = modal.tmp.children('iframe');
     
    10341334                        loadingError();
    10351335        }
     1336       
     1337        function galleryCounts(nb, total, elts, settings) {
     1338                settings.title+= (settings.title?' - ':'') +nb+'/'+total;
     1339        }
    10361340
    10371341
     
    10451349                if (contentEltLast) {
    10461350                        contentEltLast.append(modal.content.contents());
    1047                         contentEltLast= null;
     1351                        contentEltLast = null;
    10481352                } else if (contentElt) {
    10491353                        contentElt.append(modal.content.contents());
     
    10511355                }
    10521356                modal.content.empty();
    1053                 modal.contentWrapper
    1054                         .empty()
    1055                         .removeAttr('style');
     1357               
     1358                gallery = {};
     1359               
     1360                modal.contentWrapper.hide().children().remove().empty().attr('style', '').hide();
    10561361
    10571362                if (modal.closing || modal.transition)
     
    10881393                debug('endShowContent');
    10891394                modal.anim = false;
     1395                modal.animContent = false;
    10901396                modal.contentWrapper.css({opacity: ''}); // for the close button in IE
    1091                 fixFF = $.browser.mozilla && parseFloat($.browser.version) < 1.9 && currentSettings.type != 'gallery' && currentSettings.type != 'image';
     1397                fixFF = /mozilla/.test(userAgent) && !/(compatible|webkit)/.test(userAgent) && parseFloat(browserVersion) < 1.9 && currentSettings.type != 'image';
    10921398                if (fixFF)
    10931399                        modal.content.css({position: 'fixed'}); // Fix Issue #10
     1400                modal.content.append(modal.scriptsShown);
     1401                if (currentSettings.autoSizable && currentSettings.type == 'iframe') {
     1402                //*
     1403                        var iframe = modal.content.find('iframe');
     1404                        if (iframe.length && iframe.attr('src').indexOf(window.location.hostname) !== -1) {
     1405                                var body = iframe.contents().find('body');
     1406                       
     1407                                if (body.height() > 0) {
     1408                                        var h = body.outerHeight(true)+1;
     1409                                        var w = body.outerWidth(true)+1;
     1410                                        $.nyroModalSettings({
     1411                                                height: h,
     1412                                                width: w
     1413                                        });
     1414                                } else {
     1415                                        iframe.bind('load', function() {
     1416                                                var body = iframe.contents().find('body');
     1417                                                if (body.length && body.height() > 0) {
     1418                                                        var h = body.outerHeight(true)+1;
     1419                                                        var w = body.outerWidth(true)+1;
     1420                                                        $.nyroModalSettings({
     1421                                                                height: h,
     1422                                                                width: w
     1423                                                        });
     1424                                                }
     1425                                        });
     1426                                }
     1427                        }
     1428                // */
     1429                }
    10941430                if ($.isFunction(currentSettings.endShowContent))
    10951431                        currentSettings.endShowContent(modal, currentSettings);
     1432                if (shouldResize) {
     1433                        shouldResize = false;
     1434                        $.nyroModalSettings({width: currentSettings.setWidth, height: currentSettings.setHeight});
     1435                        delete currentSettings['setWidth'];
     1436                        delete currentSettings['setHeight'];
     1437                }
    10961438                if (resized.width)
    10971439                        setCurrentSettings({width: null});
     
    11231465                $.each($.clean({0:data}, this.ownerDocument), function() {
    11241466                        if ($.nodeName(this, "script")) {
    1125                                 if (!this.src || $(this).attr('rel') == 'forceLoad')
    1126                                         modal.scripts.push(this);
     1467                                if (!this.src || $(this).attr('rel') == 'forceLoad') {
     1468                                        if ($(this).attr('rev') == 'shown')
     1469                                                modal.scriptsShown.push(this);
     1470                                        else
     1471                                                modal.scripts.push(this);
     1472                                }
    11271473                        } else
    11281474                                tmp.push(this);
     
    11661512        }
    11671513
    1168         // Show the message in the background if possible.
     1514        // Proxy Debug function
    11691515        function debug(msg) {
    1170                 //alert(msg);
    1171                 if (currentSettings && currentSettings.debug && modal.full)
    1172                         modal.bg.prepend(msg+'<br />');
     1516                if ($.fn.nyroModal.settings.debug || currentSettings && currentSettings.debug)
     1517                        nyroModalDebug(msg, modal, currentSettings || {});
    11731518        }
    11741519
     
    12121557                                width: settings.width+'px',
    12131558                                height: settings.height+'px',
    1214                                 marginTop: (settings.marginTop)+'px',
    1215                                 marginLeft: (settings.marginLeft)+'px'
     1559                                marginTop: settings.marginTop+'px',
     1560                                marginLeft: settings.marginLeft+'px'
    12161561                        }, {duration: 350, complete: function() {
    12171562                                elts.contentWrapper
     
    12191564                                                width: settings.width+'px',
    12201565                                                height: settings.height+'px',
    1221                                                 marginTop: (settings.marginTop)+'px',
    1222                                                 marginLeft: (settings.marginLeft)+'px'
     1566                                                marginTop: settings.marginTop+'px',
     1567                                                marginLeft: settings.marginLeft+'px'
    12231568                                        })
    12241569                                        .show();
     
    12331578                                height: '50px',
    12341579                                width: '50px',
    1235                                 marginTop: (-(25+currentSettings.borderH)/2 + currentSettings.marginScrollTop)+'px',
    1236                                 marginLeft: (-(25+currentSettings.borderW)/2 + currentSettings.marginScrollLeft)+'px'
     1580                                marginTop: (-(25+settings.borderH)/2 + settings.marginScrollTop)+'px',
     1581                                marginLeft: (-(25+settings.borderW)/2 + settings.marginScrollLeft)+'px'
    12371582                        }, {duration: 350, complete: function() {
    12381583                                elts.contentWrapper.hide();
     
    12641609                        .css({
    12651610                                width: settings.width+'px',
     1611                                height: settings.height+'px',
    12661612                                marginLeft: settings.marginLeft+'px',
    1267                                 height: settings.height+'px',
    12681613                                marginTop: settings.marginTop+'px',
    12691614                                opacity: 1
     
    12721617                        .animate({
    12731618                                width: settings.width+'px',
     1619                                height: settings.height+'px',
    12741620                                marginLeft: settings.marginLeft+'px',
    1275                                 height: settings.height+'px',
    12761621                                marginTop: settings.marginTop+'px'
    12771622                        }, {complete: function() {
     
    12881633                        .animate({
    12891634                                width: settings.width+'px',
     1635                                height: settings.height+'px',
    12901636                                marginLeft: settings.marginLeft+'px',
    1291                                 height: settings.height+'px',
    12921637                                marginTop: settings.marginTop+'px'
    12931638                        }, {complete: callback, duration: 400});
     
    13121657
    13131658});
     1659
     1660// Default debug function, to be overwritten if needed
     1661//      Be aware that the settings parameter could be empty
     1662function nyroModalDebug(msg, elts, settings) {
     1663        if (elts.full)
     1664                elts.bg.prepend(msg+'<br />');
     1665}
  • _plugins_/_dev_/nyroceros/nyroceros_pipelines.php

    r28762 r28763  
    1919       
    2020        $flux .='
    21 <script src="'.url_absolue(find_in_path('js/jquery.nyroModal-1.3.0.js')).'" type="text/javascript"></script>
     21<script src="'.url_absolue(find_in_path('js/jquery.nyroModal-1.5.0.js')).'" type="text/javascript"></script>
    2222<script src="'.url_absolue(find_in_path('js/nyromodal.js')).'" type="text/javascript"></script>';
    2323       
  • _plugins_/_dev_/nyroceros/plugin.xml

    r28762 r28763  
    55_ Mis en plugin par SmeL, b_b et mis en marche par Fil :-)
    66        </auteur>
    7         <version>0.1.2</version>
     7        <version>0.2</version>
    88        <icon>nyroceros-64.png</icon>
    99        <etat>dev</etat>
  • _plugins_/_dev_/nyroceros/styles/nyroModal.full.css

    r24056 r28763  
    11div#nyroModalFull {
    22        font-size: 12px;
    3         color: #777777;
    4         font-family: Verdana;
     3        color: #777;
    54}
    65div#nyroModalFull div#nyroModalLoading {
     
    3635        outline: 0;
    3736}
     37div#nyroModalFull div#nyroModalWrapper h1#nyroModalTitle {
     38        margin: 0;
     39        padding: 0;
     40        position: absolute;
     41        top: -22px;
     42        left: 5px;
     43        font-size: 12px;
     44        color: #ddd;
     45}
    3846div#nyroModalFull div#nyroModalWrapper div.wrapper div#nyroModalContent {
    3947        padding: 5px;
     
    6472        cursor: help;
    6573}
    66 div#nyroModalFull div#nyroModalWrapper div.wrapperImg div#nyroModalContent a {
     74div#nyroModalFull div#nyroModalWrapper a.nyroModalPrev, div#nyroModalFull div#nyroModalWrapper a.nyroModalNext {
     75        z-index: 105;
    6776        outline: none;
    6877        position: absolute;
    6978        top: 0;
    7079        height: 100%;
     80        width: 40%;
    7181        cursor: pointer;
    7282        text-indent: -9999em;
    7383        background-image: url(data:image/gif;base64,AAAA); /* Trick IE6 */
    7484}
    75 div#nyroModalFull div#nyroModalWrapper div.wrapperImg div#nyroModalContent a.nyroModalPrev {
     85div#nyroModalFull div#nyroModalWrapper div.wrapperSwf a.nyroModalPrev, div#nyroModalFull div#nyroModalWrapper div.wrapperSwf a.nyroModalNext, div#nyroModalFull div#nyroModalWrapper div.wrapper a.nyroModalPrev, div#nyroModalFull div#nyroModalWrapper div.wrapper a.nyroModalNext {
     86        height: 60%;
     87        width: 20%;
     88}
     89div#nyroModalFull div#nyroModalWrapper div#nyroModalContent a.nyroModalPrev {
    7690        left: 0;
    77         width: 40%;
    7891}
    79 div#nyroModalFull div#nyroModalWrapper div.wrapperImg div#nyroModalContent a.nyroModalPrev:hover {
     92div#nyroModalFull div#nyroModalWrapper div#nyroModalContent a.nyroModalPrev:hover {
    8093        background: url(../img/prev.gif) left 20% no-repeat;
    8194}
    82 div#nyroModalFull div#nyroModalWrapper div.wrapperImg div#nyroModalContent a.nyroModalNext {
     95div#nyroModalFull div#nyroModalWrapper div#nyroModalContent a.nyroModalNext {
    8396        right: 0;
    84         width: 40%;
    8597}
    86 div#nyroModalFull div#nyroModalWrapper div.wrapperImg div#nyroModalContent a.nyroModalNext:hover {
     98div#nyroModalFull div#nyroModalWrapper div#nyroModalContent a.nyroModalNext:hover {
    8799        background: url(../img/next.gif) right 20% no-repeat;
    88100}
Note: See TracChangeset for help on using the changeset viewer.