source: spip-zone/_squelettes_/soyezcreateurs_net/plugins_2.1/plugins/soyezcreateurs/javascripts.js.html @ 65342

Last change on this file since 65342 was 65342, checked in by real3t@…, 9 years ago

Le menu déroulant ne flashe plus au chargement de la page.

File size: 23.6 KB
Line 
1#CACHE{30*24*3600,cache-client}
2#HTTP_HEADER{Content-Type: text/javascript; charset=iso-8859-1}
3// Menu accessible dynamique et CSS alternatives, V 2.0 (avec jquery)
4//
5// Copyright (c) 2004 Jacques PYRAT
6// http://www.pyrat.net/
7//
8// Licensed under the LGPL license
9// http://www.gnu.org/copyleft/lesser.html
10//
11// **********************************************************************
12// This program is distributed in the hope that it will be useful, but
13// WITHOUT ANY WARRANTY; without even the implied warranty of
14// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15// **********************************************************************
16//
17// Presets
18var jp_blankpic='#CHEMIN{images/1.gif}';
19var jp_onclass='menu_plus';
20var jp_offclass='menu_minus';
21var jp_picalt='<:soyezcreateurs:menu_picalt:>';
22var jp_strDeplier='<:soyezcreateurs:menu_deplier:>';
23var jp_strReplier='<:soyezcreateurs:menu_replier:>';
24var jp_parentID='menu';
25// Checking for DOM compatibility       
26if (document.getElementById && document.createTextNode && document.createElement){jp_canDOM=true}
27
28function jp_expinit(){
29        if (jp_canDOM){
30                if(jp_parentID && document.getElementById(jp_parentID)){
31                        jp_alluls=document.getElementById(jp_parentID).getElementsByTagName('UL');
32                        jp_alllis=document.getElementById(jp_parentID).getElementsByTagName('LI');
33                        for(i=0;i<jp_alluls.length;i++){
34                                jp_subul=jp_alluls[i];
35                                if(jp_subul.parentNode.tagName=='LI'){
36                                        jp_supli=jp_subul.parentNode
37                                        jp_islink=jp_supli.getElementsByTagName('a')[0];
38                                        if(jp_islink){
39                                                jp_addimg = document.createElement('img');
40                                                jp_addimg.src=jp_blankpic;
41                                                jp_addimg.className='node';
42                                                jp_addimg.alt='';
43                                                jp_addimg.onclick=function() {jp_ex(this,null);return false;};
44                                                jp_supli.getElementsByTagName('A')[0].onkeypress=inputKeyHandler;
45                                                jp_supli.getElementsByTagName('A')[0].onfocus=function() {jp_ex(this,0);};
46                                                jp_supli.insertBefore(jp_addimg,jp_supli.firstChild);
47                                        }
48                                        // Do not collapse when there is a strong element in the list.
49                                        jp_highlight=jp_subul.parentNode.getElementsByTagName('strong').length==0?true:false;
50                                        jp_disp=jp_highlight?'none':'block';
51                                        var jp_picaltonoff=jp_highlight?jp_picalt+jp_strDeplier:jp_picalt+jp_strReplier;
52                                        jp_pic_class=jp_highlight?jp_onclass:jp_offclass;
53                                        // End  highlight change
54                                        jp_childs=jp_subul.getElementsByTagName('li').length
55                                        jp_momimg=jp_subul.parentNode.getElementsByTagName('img')[0]
56                                        if(jp_momimg){
57                                                jp_momimg.setAttribute('title',jp_picaltonoff+jp_subul.parentNode.getElementsByTagName('a')[0].text);
58                                                jp_momimg.setAttribute('alt',jp_picaltonoff+jp_subul.parentNode.getElementsByTagName('a')[0].text);
59                                                jp_momimg.className=jp_pic_class;
60                                                jp_subul.style.display=jp_disp;
61                                        }
62                                }
63                        }
64                }
65        }
66}
67
68// Collapse and Expand node.
69function jp_ex(jp_n,jp_event){
70        if(jp_canDOM){
71                jp_u=jp_n.parentNode.getElementsByTagName("ul")[0];
72                if (!jp_u) jp_u=jp_n.parentNode.parentNode.getElementsByTagName("ul")[0];;
73                if(jp_u){
74                        if (((jp_u.style.display=='none'||jp_u.style.display=='')&&(jp_event==0||jp_event==43||jp_event==null))||((jp_u.style.display=='block')&&(jp_event==45||jp_event==null))) {
75                                jp_u.style.display=jp_u.style.display=='none'||jp_u.style.display==''?'block':'none';
76                                jp_img=jp_u.parentNode.getElementsByTagName('img')[0];
77                                jp_img.className=jp_img.className.indexOf(jp_offclass)!=-1?jp_onclass:jp_offclass;
78                                var jp_strAlt=jp_img.getAttribute('title');
79                                if (jp_strAlt==null) { jp_strAlt=''; }
80                                if (jp_img.className.indexOf(jp_offclass)!=-1) {
81                                        var jp_re = new RegExp (jp_strDeplier, 'gi');
82                                        var jp_strAltNew = jp_strAlt.replace(jp_re,jp_strReplier);
83                                }else{
84                                        var jp_re = new RegExp (jp_strReplier, 'gi');
85                                        var jp_strAltNew = jp_strAlt.replace(jp_re,jp_strDeplier);
86                                }
87                                jp_img.setAttribute('title',jp_strAltNew);
88                                jp_img.setAttribute('alt',jp_strAltNew);
89                                adjustLayout();
90                                return true;
91                        } else {
92                                return false;
93                        }
94                }
95        }                       
96}
97function inputKeyHandler(ev) {
98        ev = ev || event;
99        if (jp_ex(ev.target || ev.srcElement,ev.keyCode || ev.which)) {
100                ev.cancelBubble= true;
101                if (ev.stopPropagation) ev.stopPropagation();
102        }
103}
104
105
106function adjustLayout() {
107        /* Remettre la taille à auto pour trouver l'eventuelle nouvelle hauteur !*/
108        $("div.equilibre").css({'height': 'auto'});
109        /*******************************************CAS N°1********************************************************************/
110        /*Nav, Contenu et Extra alignes top (Layout 1 a 22)*/
111        var tnotstackable =0;
112        tnotstackable = parseInt($("div.notstackable")[0].offsetTop);
113        tlaststackable = parseInt($("div.laststackable")[0].offsetTop);
114        if (tnotstackable==tlaststackable) {
115                        var h=0;
116                        $("div.equilibre").each(function(){ h=Math.max(h,this.offsetHeight); }).css({'height': h+'px'});
117                        $("div.equilibre").css({'height': parseInt($("div.equilibre")[0].offsetHeight)});
118                        /*alert("Cas 1");*/
119        }
120        else {
121/*********************************************CAS 2*********************************************************************/
122        /* Navigation et Extra sont empiles (Layout 23 a 26 et 33 et 34)*/
123                leftlaststackable = parseInt($("div.laststackable")[0].offsetLeft);
124                leftnavigation = parseInt($("div#navigation")[0].offsetLeft);
125                largeurnavigation = parseInt($("div#navigation")[0].offsetWidth);
126                largeurextra = parseInt($("div.laststackable")[0].offsetWidth);
127                if ((leftlaststackable == leftnavigation) && (largeurextra == largeurnavigation)) {
128                        var hstacked = 0;
129                        $("div.stackable").each(function(){ hstacked+=parseInt(this.offsetHeight); });
130                        var hnotstackable = 0;
131                        hnotstackable = parseInt($("div.notstackable")[0].offsetHeight);
132                        if (hnotstackable>hstacked) {
133                                $("div.laststackable").css({'height': hnotstackable + parseInt($("div.laststackable")[0].offsetHeight) - hstacked+'px'});
134                                $("div.notstackable").css({'height': hnotstackable+'px'});
135                                /*alert("Cas 2");*/
136                        }
137                        else {
138                                $("div.notstackable").css({'height': hstacked+'px'});
139                        };
140                }
141                else {
142/**********************************************CAS 3*******************************************************************/
143        /* Navigation et Extra meme Top et differents de Contenu (Layout 27-28-39-40)*/
144                        tlaststackable = parseInt($("div.laststackable")[0].offsetTop);
145                        tstackable = parseInt($("div.stackable")[0].offsetTop);
146                        if (tstackable==tlaststackable){
147                                var h=0;
148                                $("div.stackable").each(function(){ h=Math.max(h,this.offsetHeight); }).css({'height': h+'px'});
149                                /*alert("Cas 3");*/
150                        }
151                        else {
152/**********************************************CAS 4*******************************************************************/
153        /* Navigation et Contenu meme alignement Top (Layout 35 et 36)*/
154                                largeurcontenu = parseInt($("div.notstackable")[0].offsetWidth);
155                                if (largeurcontenu==largeurextra) {
156                                        hstackable = (hauteurcontenu = parseInt($("div.notstackable")[0].offsetHeight)) + (hauteurext = parseInt($("div.laststackable")[0].offsetHeight));
157                                        hnavigation = parseInt($("div#navigation")[0].offsetHeight);
158                                        if(hstackable < hnavigation) {
159                                                $("div.notstackable").css({'height': (hnavigation - hauteurext)+'px'});
160                                        }
161                                        else {
162                                                $("div#navigation").css({'height': hstackable+'px'});
163                                        }
164                                        /*alert("Cas 4");*/
165                                }
166                                else    {
167/**********************************************CAS 5*******************************************************************/
168        /* Navigation et Contenu meme alignement Top (Layout 29 a 32 et 37 et 38)*/
169                                        hstackable = (hauteurcontenu = parseInt($("div.notstackable")[0].offsetHeight));
170                                        hnavigation = parseInt($("div#navigation")[0].offsetHeight);
171                                        if(hstackable > hnavigation) {
172                                                $("div#navigation").css({'height': hstackable+'px'});
173                                        }
174                                        else {
175                                        $("div.notstackable").css({'height': hnavigation+'px'});
176                                        }
177                                        /*alert("Cas 5");*/
178                                }
179                        }
180                }
181        }
182}
183;
184/* FUNCTIONS ON ALL PAGES */
185function myInitPages() {
186        /* HOME SPECIAL FEATURE */
187        if (jQuery('#homeSpecialFeature').size() > 0) {
188                if (jQuery('.hSFItem').size()>1) { initMyHomeSpecialFeature = myHomeSpecialFeature("#homeSpecialFeature",'hSFItem','hSFDecoImg','hSFDecoSpan'); }
189        }
190        if (jQuery('#menuh').size() > 0) {
191                $(document).ready(function(){
192                  $("#menuh").attr('role','navigation')/*.supersubs({
193            minWidth:    12,   // minimum width of sub-menus in em units
194            maxWidth:    24,   // maximum width of sub-menus in em units
195            extraWidth:  1     // extra width can ensure lines don't sometimes turn over
196                               // due to slight rounding differences and font-family
197        })*/.superfish({
198                        hoverClass: 'hover',
199                        delay: 800,
200                        disableHI: true,
201                        dropShadows: false
202                  })/*.find('ul').bgIframe({opacity:false})*/;
203
204                  $("#switch-css option").click(function() {
205                                $("link").attr("href",$(this).attr('value'));
206                                return false;
207                        });
208                });
209        }
210        if (jQuery('#arretSurImg .mainCarousels').size() > 0) { homeCarousel('.mainCarousels'); }
211        [(#CONFIG{soyezcreateurs_layout/menuderoulant,replie}|=={replie}|oui)jp_expinit();]
212        // Surligner l'evenement en cours
213        var id_anchor  = location.hash.substr(1); //Get the word after the hash from the url
214        if (id_anchor) $('#'+id_anchor).parent().addClass('highlight_anchor'); // ajoute la classe highlight_anchor à l'element autour de l'ancre
215        if (CanceladjustLayout != true) {
216                adjustLayout();
217                $("body").resize(
218                        function () {
219                        adjustLayout();
220                        }
221                );
222                if (CancelMonitorTextSize != true) {
223                        $.em.element = $('<div />').css({ left:     '-100em',
224                                                                                position: 'absolute',
225                                                                                width:    '100em' })
226                                                                 .prependTo('div.texte')[0];
227                        $('div.texte').bind('emchange', function(e, cur, prev) { adjustLayout(); });
228                }
229                onAjaxLoad(adjustLayout); // Merci Marcimat sur IRC !
230        }
231;
232[(#CONFIG{soyezcreateurs/native_tooltips}|=={on}|non)
233        $(function() {
234                $('a, input, select, img, button, h2, h3, dd, acronym, abbr, area').tooltip({
235                        track: false,
236                        delay: 0,
237                        showURL: false,
238                        showBody: " - ",
239                        fade: 250
240                });
241        });
242]
243        $(".escapelinks a").focus( function() { $(".escapelinks").removeClass("escapelinks"); } );
244
245}
246;
247/* BLACK TRANSPARENT BACKGROUNDS */
248function mySpecialBackgrounds(elt,correcAmount,correcAmount2) {
249        jQuery(elt).each(function() {
250                var targetHeight = jQuery(this).parent().height();
251                var targetWidth = jQuery(this).parent().width();
252                jQuery(this).css({'height':targetHeight+correcAmount,'width':targetWidth+correcAmount2,'opacity':.5});
253        });
254}
255;
256/* HOME SPECIAL FEATURE */
257function myHomeSpecialFeature(container,item,decoImg,decoSpan) {
258        jQuery('#'+item+'1').addClass('active'+item);
259        mySpecialBackgrounds('.'+item+' .'+decoSpan,14,10);
260        jQuery('#'+item+'1 .'+decoSpan).css("opacity", 1);
261        jQuery('.'+item+' .'+decoImg).hide();
262        jQuery('#'+item+'1 .'+decoImg).show();
263
264        var x = 1;
265        var maxX = jQuery('.'+item).size();
266        function myAnimate(x,maxX) {
267                if (x > maxX) { x = 1; }
268                jQuery('.'+item).removeClass('active'+item);
269                jQuery('#'+item+x).addClass('active'+item);
270                jQuery('.'+item+' .'+decoSpan).animate({"opacity": .5}, { queue:false, duration:800 });
271                jQuery('#'+item+x+' .'+decoSpan).animate({"opacity": 1},800);
272                jQuery('.'+item+' .'+decoImg).fadeOut(800);
273                jQuery('#'+item+x+' .'+decoImg).fadeIn(800);
274                timer = setTimeout(function() {
275                        if (x < maxX) { x = x+1; myAnimate(x,maxX); }
276                        else if (x = maxX) { x = 1; myAnimate(x,maxX); }
277                } , 5000 );
278        }
279        myAnimate(x,maxX);
280
281        jQuery('.'+item).each(function() {
282                jQuery(this).hover(
283                        function() {
284                                clearTimeout(timer);
285                                currentItem = jQuery('.'+item).index(this)+1;
286                                jQuery('.'+item).removeClass('active'+item);
287                                jQuery(this).addClass('active'+item);
288                                jQuery('.'+item+' .'+decoSpan+':not("#'+item+currentItem+' .'+decoSpan+'")').css("opacity", .5);
289                                jQuery(this).children().children('.'+decoSpan).animate({"opacity": 1},400);
290                                jQuery('.'+item+' .'+decoImg+':not("#'+item+currentItem+' .'+decoImg+'")').fadeOut(400);
291                                jQuery(this).children('.'+decoImg).fadeIn(400);
292                        },
293                        function() {
294                                clearTimeout(timer);
295                                currentItem = jQuery('.'+item).index(this)+2;
296                                jQuery(this).removeClass('active'+item);
297                                jQuery(this).children().children('.'+decoSpan).animate({"opacity": .5},400);
298                                timer = setTimeout(function() { myAnimate(currentItem,maxX); } , 1000 );
299                        }
300                );
301        });
302}
303;
304
305/* HOME CYCLE */
306function homeCarousel(elt) {
307        /* carousels internes */
308        var elemNbr = jQuery(elt+' > li').size();
309        var myCounter = 1;
310        function onAfter(curr,next,opts) {
311                if (opts.currSlide+1 == opts.slideCount) {
312                        if (myCounter < elemNbr) {
313                                myCounter = myCounter+1;
314                        } else if (myCounter == elemNbr) {
315                                myCounter = 1;
316                        }
317
318                        function reloadCarousels() {
319                                jQuery('.smallCarousel').stop(true,true).fadeOut(750);
320                                jQuery('#sc'+myCounter+'b').stop(true,true).fadeIn(750).children('ul').cycle({
321                                    //fx: 'scrollHorz', // pour transition latérale
322                                    fx: 'fade',
323                                    speed: 1500,
324                                    timeout: 4000,
325                                        pause: true,
326                                        startingSlide: 0,
327                                        after: onAfter
328                                });
329                        jQuery('.mainCarousel').removeClass('active');
330                        if (myCounter == 1) {
331                                jQuery('.mainCarousel:first').addClass('active');
332                        } else {
333                                        jQuery('.mainCarousel').eq(myCounter-1).addClass('active');
334                        }
335                }
336                        jQuery('.smallCarousel').children('ul').cycle('stop');
337                        var t2=setTimeout(reloadCarousels,3000);
338                } else {
339                        clearTimeout(t2);
340                }
341                //alert(myCounter);
342        }
343        function onAfter2(curr,next,opts) {
344                //
345        }
346        jQuery('.smallCarousel ul').cycle({
347            //fx: 'scrollHorz', // pour transition latérale
348            fx: 'fade',
349            speed: 1500,
350            timeout: 4000,
351                pause: true,
352                startingSlide: 0,
353                after: onAfter
354        });
355        jQuery('.smallCarousel').hide().children('ul').cycle('pause');
356        jQuery('#sc1b').show().children('ul').cycle('resume');
357        /* faux carousel principal */
358        var whatToShow = '';
359        jQuery('.mainCarousel:first').addClass('active');
360        jQuery(document).delegate('.mainCarousel','mouseenter focus', function() {
361                jQuery('.mainCarousel').removeClass('hover active');
362                jQuery(this).addClass('hover active');
363                whatToShow = jQuery(this).children('h2').children('a').attr('id');
364                jQuery('.smallCarousel').stop(true,true).fadeOut().children('ul').cycle('stop');
365                // jQuery(whatToShow).stop(true,true).fadeIn().children('ul').cycle({fx: 'scrollHorz',speed: 1500,timeout: 4000,pause: true,after: onAfter2}).cycle('resume'); // avec transition latérale
366                jQuery('#'+whatToShow+'b').stop(true,true).fadeIn().children('ul').cycle({fx: 'fade',speed: 1500,timeout: 4000,pause: true,startingSlide: 0,after: onAfter2});
367        }).delegate('.mainCarousel','mouseleave blur', function() {
368                whatToShow = jQuery(this).children('h2').children('a').attr('id');
369                jQuery(this).removeClass('hover');
370                // jQuery('.smallCarousel').stop(true,true).fadeOut().children('ul').cycle({fx: 'scrollHorz',speed: 1500,timeout: 4000,pause: true,after: onAfter}).cycle('pause'); // avec transition latérale
371                jQuery('.smallCarousel').stop(true,true).fadeOut().children('ul').cycle('stop');
372                jQuery('#'+whatToShow+'b').stop(true,true).fadeIn().children('ul').cycle({fx: 'fade',speed: 1500,timeout: 4000,pause: true,startingSlide: 0,after: onAfter});
373                myCounter = jQuery(this).index()+1;
374        });
375}
376
377/*
378 * Supersubs v0.2b - jQuery plugin
379 * Copyright (c) 2008 Joel Birch
380 *
381 * Dual licensed under the MIT and GPL licenses:
382 *      http://www.opensource.org/licenses/mit-license.php
383 *      http://www.gnu.org/licenses/gpl.html
384 *
385 *
386 * This plugin automatically adjusts submenu widths of suckerfish-style menus to that of
387 * their longest list item children. If you use this, please expect bugs and report them
388 * to the jQuery Google Group with the word 'Superfish' in the subject line.
389 *
390 */
391
392;(function($){ // $ will refer to jQuery within this closure
393
394        $.fn.supersubs = function(options){
395                var opts = $.extend({}, $.fn.supersubs.defaults, options);
396                // return original object to support chaining
397                return this.each(function() {
398                        // cache selections
399                        var $$ = $(this);
400                        // support metadata
401                        var o = $.meta ? $.extend({}, opts, $$.data()) : opts;
402                        // get the font size of menu.
403                        // .css('fontSize') returns various results cross-browser, so measure an em dash instead
404                        var fontsize = $('<li id="menu-fontsize">&#8212;</li>').css({
405                                'padding' : 0,
406                                'position' : 'absolute',
407                                'top' : '-999em',
408                                'width' : 'auto'
409                        }).appendTo($$).width(); //clientWidth is faster, but was incorrect here
410                        // remove em dash
411                        $('#menu-fontsize').remove();
412                        // cache all ul elements
413                        $ULs = $$.find('ul');
414                        // loop through each ul in menu
415                        $ULs.each(function(i) {
416                                // cache this ul
417                                var $ul = $ULs.eq(i);
418                                // get all (li) children of this ul
419                                var $LIs = $ul.children();
420                                // get all anchor grand-children
421                                var $As = $LIs.children('a');
422                                // force content to one line and save current float property
423                                var liFloat = $LIs.css('white-space','nowrap').css('float');
424                                // remove width restrictions and floats so elements remain vertically stacked
425                                var emWidth = $ul.add($LIs).add($As).css({
426                                        'float' : 'none',
427                                        'width' : 'auto'
428                                })
429                                // this ul will now be shrink-wrapped to longest li due to position:absolute
430                                // so save its width as ems. Clientwidth is 2 times faster than .width() - thanks Dan Switzer
431                                .end().end()[0].clientWidth / fontsize;
432                                // add more width to ensure lines don't turn over at certain sizes in various browsers
433                                emWidth += o.extraWidth;
434                                // restrict to at least minWidth and at most maxWidth
435                                if (emWidth > o.maxWidth)               { emWidth = o.maxWidth; }
436                                else if (emWidth < o.minWidth)  { emWidth = o.minWidth; }
437                                emWidth += 'em';
438                                // set ul to width in ems
439                                $ul.css('width',emWidth);
440                                // restore li floats to avoid IE bugs
441                                // set li width to full width of this ul
442                                // revert white-space to normal
443                                $LIs.css({
444                                        'float' : liFloat,
445                                        'width' : '100%',
446                                        'white-space' : 'normal'
447                                })
448                                // update offset position of descendant ul to reflect new width of parent
449                                .each(function(){
450                                        var $childUl = $('>ul',this);
451                                        var offsetDirection = $childUl.css('left')!==undefined ? 'left' : 'right';
452                                        $childUl.css(offsetDirection,emWidth);
453                                });
454                        });
455                       
456                });
457        };
458        // expose defaults
459        $.fn.supersubs.defaults = {
460                minWidth                : 9,            // requires em unit.
461                maxWidth                : 25,           // requires em unit.
462                extraWidth              : 0                     // extra width can ensure lines don't sometimes turn over due to slight browser differences in how they round-off values
463        };
464       
465})(jQuery); // plugin code ends
466
467// Inspiré de http://users.tpg.com.au/j_birch/plugins/superfish/
468// Menu accessible : http://aquelito.fr/truc/menu3/
469/*
470 * Superfish v1.4.8 - jQuery menu widget
471 * Copyright (c) 2008 Joel Birch
472 *
473 * Dual licensed under the MIT and GPL licenses:
474 *      http://www.opensource.org/licenses/mit-license.php
475 *      http://www.gnu.org/licenses/gpl.html
476 *
477 * CHANGELOG: http://users.tpg.com.au/j_birch/plugins/superfish/changelog.txt
478 */
479
480
481;(function($){
482        $.fn.superfish = function(op){
483                var sf = $.fn.superfish,
484                        c = sf.c,
485                        $arrow = $(['<span class="'+ c.arrowClass +'"></span>'].join('')),
486                        over = function(){
487                                var $$ = $(this), menu = getMenu($$);
488                                clearTimeout(menu.sfTimer);
489                                $$.showSuperfishUl().siblings().hideSuperfishUl();
490                        },
491                        out = function(){
492                                var $$ = $(this), menu = getMenu($$), o = sf.op;
493                                clearTimeout(menu.sfTimer);
494                                menu.sfTimer=setTimeout(function(){
495                                        o.retainPath=($.inArray($$[0],o.$path)>-1);
496                                        $$.hideSuperfishUl();
497                                        if (o.$path.length && $$.parents([ 'li.', o.hoverClass ].join('')).length<1){over.call(o.$path);}
498                                },o.delay);     
499                        },
500                        getMenu = function($menu){
501                                var menu = $menu.parents([ 'ul.', c.menuClass, ':first' ].join(''))[0];
502                                sf.op = sf.o[menu.serial];
503                                return menu;
504                        },
505                        addArrow = function($a){ $a.addClass(c.anchorClass).append($arrow.clone()); };
506                       
507                return this.each(function() {
508                        var s = this.serial = sf.o.length;
509                        var o = $.extend({},sf.defaults,op);
510                        o.$path = $('li.'+ o.pathClass,this).slice(0, o.pathLevels).each(function(){
511                                $(this).addClass([o.hoverClass,c.bcClass].join(' '))
512                                        .filter('li:has(ul)').removeClass(o.pathClass);
513                        });
514                        sf.o[s] = sf.op = o;
515                       
516                        $('li:has(ul)',this)[($.fn.hoverIntent && !o.disableHI) ? 'hoverIntent' : 'hover'](over,out).each(function() {
517                                if (o.autoArrows) { 
518                                        addArrow( $(' > a:first-child',this) );
519                                        addArrow( $(' > strong > a:first-child',this) );
520                                }
521                        })
522                        .not('.'+c.bcClass)
523                                .hideSuperfishUl();
524                       
525                        var $a = $('a',this);
526                        $a.each(function(i){
527                                var $li = $a.eq(i).parents('li');
528                                $a.eq(i).focus(function() { over.call($li); } ).blur(function() { out.call($li); });
529                        });
530                        o.onInit.call(this);
531                       
532                }).each(function() {
533                        var menuClasses = [c.menuClass];
534                        if (sf.op.dropShadows  && !($.browser.msie && $.browser.version < 7)) menuClasses.push(c.shadowClass);
535                        $(this).addClass(menuClasses.join(' '));
536                });
537        };
538
539        var sf = $.fn.superfish;
540        sf.o = [];
541        sf.op = {};
542        sf.IE7fix = function(){
543                var o = sf.op;
544                if ($.browser.msie && $.browser.version > 6 && o.dropShadows && o.animation.opacity != undefined)
545                        this.toggleClass(sf.c.shadowClass + '-off');
546                };
547        sf.c = {
548                bcClass     : 'sf-breadcrumb',
549                menuClass   : 'drop',
550                anchorClass : 'sf-with-ul',
551                arrowClass  : 'sf-sub-indicator',
552                shadowClass : 'sf-shadow'
553        };
554        sf.defaults = {
555                hoverClass      : 'sfhover',
556                pathClass       : 'overideThisToUse',
557                pathLevels      : 1,
558                delay           : 800,
559                animation       : {opacity:'show'},
560                speed           : 'normal',
561                autoArrows      : true,
562                dropShadows : true,
563                disableHI       : false,                // true disables hoverIntent detection
564                onInit          : function(){}, // callback functions
565                onBeforeShow: function(){},
566                onShow          : function(){},
567                onHide          : function(){}
568        };
569        $.fn.extend({
570                hideSuperfishUl : function(){
571                        var o = sf.op,
572                                not = (o.retainPath===true) ? o.$path : '';
573                        o.retainPath = false;
574                        var $ul = $(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass).find(' > ul');
575                        o.onHide.call($ul);
576                        return this;
577                },
578                showSuperfishUl : function(){
579                        var o = sf.op,
580                                sh = sf.c.shadowClass+'-off',
581                                $ul = this.addClass(o.hoverClass).find(' > ul:hidden');
582                        sf.IE7fix.call($ul);
583                        o.onBeforeShow.call($ul);
584                        $ul.animate(o.animation, o.speed, function(){ sf.IE7fix.call($ul); o.onShow.call($ul); });
585                        return this;
586                }
587        });
588})(jQuery);
589
590/*! Copyright (c) 2010 Brandon Aaron (http://brandonaaron.net)
591 * Licensed under the MIT License (LICENSE.txt).
592 *
593 * Version 2.1.2
594 */
595
596(function($){
597
598$.fn.bgiframe = ($.browser.msie && /msie 6\.0/i.test(navigator.userAgent) ? function(s) {
599    s = $.extend({
600        top     : 'auto', // auto == .currentStyle.borderTopWidth
601        left    : 'auto', // auto == .currentStyle.borderLeftWidth
602        width   : 'auto', // auto == offsetWidth
603        height  : 'auto', // auto == offsetHeight
604        opacity : true,
605        src     : 'javascript:false;'
606    }, s);
607    var html = '<iframe class="bgiframe"frameborder="0"tabindex="-1"src="'+s.src+'"'+
608                   'style="display:block;position:absolute;z-index:-1;'+
609                       (s.opacity !== false?'filter:Alpha(Opacity=\'0\');':'')+
610                       'top:'+(s.top=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderTopWidth)||0)*-1)+\'px\')':prop(s.top))+';'+
611                       'left:'+(s.left=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderLeftWidth)||0)*-1)+\'px\')':prop(s.left))+';'+
612                       'width:'+(s.width=='auto'?'expression(this.parentNode.offsetWidth+\'px\')':prop(s.width))+';'+
613                       'height:'+(s.height=='auto'?'expression(this.parentNode.offsetHeight+\'px\')':prop(s.height))+';'+
614                '"/>';
615    return this.each(function() {
616        if ( $(this).children('iframe.bgiframe').length === 0 )
617            this.insertBefore( document.createElement(html), this.firstChild );
618    });
619} : function() { return this; });
620
621// old alias
622$.fn.bgIframe = $.fn.bgiframe;
623
624function prop(n) {
625    return n && n.constructor === Number ? n + 'px' : n;
626}
627
628})(jQuery);
629
630$(document).ready(function() {
631        myInitPages();
632});
Note: See TracBrowser for help on using the repository browser.