source: spip-zone/_themes_/soyezcreateurs/javascripts.js.html @ 39428

Last change on this file since 39428 was 39428, checked in by ccapdev@…, 10 years ago

premier éléments du thème soyezcreateurs

File size: 8.9 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';
25var CanceladjustLayout=False;
26// Checking for DOM compatibility       
27if (document.getElementById && document.createTextNode && document.createElement){jp_canDOM=true}
28
29function jp_expinit(){
30        if (jp_canDOM){
31                if(jp_parentID && document.getElementById(jp_parentID)){
32                        jp_alluls=document.getElementById(jp_parentID).getElementsByTagName('UL');
33                        jp_alllis=document.getElementById(jp_parentID).getElementsByTagName('LI');
34                }else{
35                        jp_alluls=document.getElementsByTagName('UL');
36                        jp_alllis=document.getElementsByTagName('LI');
37                }
38                for(i=0;i<jp_alluls.length;i++){
39                        jp_subul=jp_alluls[i];
40                        if(jp_subul.parentNode.tagName=='LI'){
41                                jp_supli=jp_subul.parentNode
42                                jp_islink=jp_supli.getElementsByTagName('a')[0];
43                                if(jp_islink){
44                                        jp_addimg = document.createElement('img');
45                                        jp_addimg.src=jp_blankpic;
46                                        jp_addimg.className='node';
47                                        jp_addimg.alt='';
48                                        jp_addimg.onclick=function() {jp_ex(this,null);return false;};
49                                        jp_supli.getElementsByTagName('A')[0].onkeypress=inputKeyHandler;
50                                        jp_supli.getElementsByTagName('A')[0].onfocus=function() {jp_ex(this,0);};
51                                        jp_supli.insertBefore(jp_addimg,jp_supli.firstChild);
52                                }
53                                // Do not collapse when there is a strong element in the list.
54                                jp_highlight=jp_subul.parentNode.getElementsByTagName('strong').length==0?true:false;
55                                jp_disp=jp_highlight?'none':'block';
56                                var jp_picaltonoff=jp_highlight?jp_picalt+jp_strDeplier:jp_picalt+jp_strReplier;
57                                jp_pic_class=jp_highlight?jp_onclass:jp_offclass;
58                                // End  highlight change
59                                jp_childs=jp_subul.getElementsByTagName('li').length
60                                jp_momimg=jp_subul.parentNode.getElementsByTagName('img')[0]
61                                if(jp_momimg){
62                                        jp_momimg.setAttribute('title',jp_picaltonoff+jp_subul.parentNode.getElementsByTagName('a')[0].text);
63                                        jp_momimg.setAttribute('alt',jp_picaltonoff+jp_subul.parentNode.getElementsByTagName('a')[0].text);
64                                        jp_momimg.className=jp_pic_class;
65                                        jp_subul.style.display=jp_disp;
66                                }
67                        }
68                }
69        }
70}
71
72// Collapse and Expand node.
73function jp_ex(jp_n,jp_event){
74        if(jp_canDOM){
75                jp_u=jp_n.parentNode.getElementsByTagName("ul")[0];
76                if (!jp_u) jp_u=jp_n.parentNode.parentNode.getElementsByTagName("ul")[0];;
77                if(jp_u){
78                        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))) {
79                                jp_u.style.display=jp_u.style.display=='none'||jp_u.style.display==''?'block':'none';
80                                jp_img=jp_u.parentNode.getElementsByTagName('img')[0];
81                                jp_img.className=jp_img.className.indexOf(jp_offclass)!=-1?jp_onclass:jp_offclass;
82                                var jp_strAlt=jp_img.getAttribute('title');
83                                if (jp_strAlt==null) { jp_strAlt=''; }
84                                if (jp_img.className.indexOf(jp_offclass)!=-1) {
85                                        var jp_re = new RegExp (jp_strDeplier, 'gi');
86                                        var jp_strAltNew = jp_strAlt.replace(jp_re,jp_strReplier);
87                                }else{
88                                        var jp_re = new RegExp (jp_strReplier, 'gi');
89                                        var jp_strAltNew = jp_strAlt.replace(jp_re,jp_strDeplier);
90                                }
91                                jp_img.setAttribute('title',jp_strAltNew);
92                                jp_img.setAttribute('alt',jp_strAltNew);
93                                adjustLayout();
94                                return true;
95                        } else {
96                                return false;
97                        }
98                }
99        }                       
100}
101function inputKeyHandler(ev) {
102        ev = ev || event;
103        if (jp_ex(ev.target || ev.srcElement,ev.keyCode || ev.which)) {
104                ev.cancelBubble= true;
105                if (ev.stopPropagation) ev.stopPropagation();
106        }
107}
108
109
110function adjustLayout() {
111        /* Remettre la taille à auto pour trouver l'eventuelle nouvelle hauteur !*/
112        $("div.equilibre").css({'height': 'auto'});
113        /*******************************************CAS N°1********************************************************************/
114        /*Nav, Contenu et Extra alignes top (Layout 1 a 22)*/
115        var tnotstackable =0;
116        tnotstackable = parseInt($("div.notstackable")[0].offsetTop);
117        tlaststackable = parseInt($("div.laststackable")[0].offsetTop);
118        if (tnotstackable==tlaststackable) {
119                        var h=0;
120                        $("div.equilibre").each(function(){ h=Math.max(h,this.offsetHeight); }).css({'height': h+'px'});
121                        $("div.equilibre").css({'height': parseInt($("div.equilibre")[0].offsetHeight)});
122                        /*alert("Cas 1");*/
123        }
124        else {
125/*********************************************CAS 2*********************************************************************/
126        /* Navigation et Extra sont empiles (Layout 23 a 26 et 33 et 34)*/
127                leftlaststackable = parseInt($("div.laststackable")[0].offsetLeft);
128                leftnavigation = parseInt($("div#navigation")[0].offsetLeft);
129                largeurnavigation = parseInt($("div#navigation")[0].offsetWidth);
130                largeurextra = parseInt($("div.laststackable")[0].offsetWidth);
131                if ((leftlaststackable == leftnavigation) && (largeurextra == largeurnavigation)) {
132                        var hstacked = 0;
133                        $("div.stackable").each(function(){ hstacked+=parseInt(this.offsetHeight); });
134                        var hnotstackable = 0;
135                        hnotstackable = parseInt($("div.notstackable")[0].offsetHeight);
136                        if (hnotstackable>hstacked) {
137                                $("div.laststackable").css({'height': hnotstackable + parseInt($("div.laststackable")[0].offsetHeight) - hstacked+'px'});
138                                $("div.notstackable").css({'height': hnotstackable+'px'});
139                                /*alert("Cas 2");*/
140                        }
141                        else {
142                                $("div.notstackable").css({'height': hstacked+'px'});
143                        };
144                }
145                else {
146/**********************************************CAS 3*******************************************************************/
147        /* Navigation et Extra meme Top et differents de Contenu (Layout 27-28-39-40)*/
148                        tlaststackable = parseInt($("div.laststackable")[0].offsetTop);
149                        tstackable = parseInt($("div.stackable")[0].offsetTop);
150                        if (tstackable==tlaststackable){
151                                $("div.stackable").css({'height': parseInt($("div.stackable")[0].offsetHeight)});
152                                var h=0;
153                                $("div.stackable").each(function(){ h=Math.max(h,this.offsetHeight); }).css({'height': h+'px'});
154                                /*alert("Cas 3");*/
155                        }
156                        else {
157/**********************************************CAS 4*******************************************************************/
158        /* Navigation et Contenu meme alignement Top (Layout 35 et 36)*/
159                                largeurcontenu = parseInt($("div.notstackable")[0].offsetWidth);
160                                if (largeurcontenu==largeurextra) {
161                                        hstackable = (hauteurcontenu = parseInt($("div.notstackable")[0].offsetHeight)) + (hauteurext = parseInt($("div.laststackable")[0].offsetHeight));
162                                        hnavigation = parseInt($("div#navigation")[0].offsetHeight);
163                                        if(hstackable < hnavigation) {
164                                                $("div.notstackable").css({'height': (hnavigation - hauteurext)+'px'});
165                                        }
166                                        else {
167                                                $("div#navigation").css({'height': hstackable+'px'});
168                                        }
169                                        /*alert("Cas 4");*/
170                                }
171                                else    {
172/**********************************************CAS 5*******************************************************************/
173        /* Navigation et Contenu meme alignement Top (Layout 29 a 32 et 37 et 38)*/
174                                        hstackable = (hauteurcontenu = parseInt($("div.notstackable")[0].offsetHeight));
175                                        hnavigation = parseInt($("div#navigation")[0].offsetHeight);
176                                        if(hstackable > hnavigation) {
177                                                $("div#navigation").css({'height': hstackable+'px'});
178                                        }
179                                        else {
180                                        $("div.notstackable").css({'height': hnavigation+'px'});
181                                        }
182                                        /*alert("Cas 5");*/
183                                }
184                        }
185                }
186        }
187}
188
189;
190$(document).ready(function() {
191        jp_expinit();
192        // Surligner l'evenement en cours
193        var id_anchor  = location.hash.substr(1); //Get the word after the hash from the url
194        if (id_anchor) $('#'+id_anchor).parent().addClass('highlight_anchor'); // ajoute la classe highlight_anchor à l'element autour de l'ancre
195        if (CanceladjustLayout != true) {
196                adjustLayout();
197                $("body").resize(
198                        function () {
199                        adjustLayout();
200                        }
201                );
202                $.em.element = $('<div />').css({ left:     '-100em',
203                                    position: 'absolute',
204                                    width:    '100em' })
205                             .prependTo('div.texte')[0];
206                $('div.texte').bind('emchange', function(e, cur, prev) { adjustLayout(); });
207                onAjaxLoad(adjustLayout); // Merci Marcimat sur IRC !
208        }
209[(#CONFIG{soyezcreateurs/native_tooltips}|=={on}|non)
210        $(function() {
211                $('a, input, select, img, button, h2, h3, dd, acronym, abbr, area').tooltip({
212                        track: false,
213                        delay: 0,
214                        showURL: false,
215                        showBody: " - ",
216                        fade: 250
217                });
218        });
219]
220       
221       
222});
Note: See TracBrowser for help on using the repository browser.