source: extensions/stripped/js/scripts-tpp.js @ 28618

Last change on this file since 28618 was 24444, checked in by flop25, 11 years ago

register link added in menubar quickconnect
script js hardly corrected to works with latest version of jQuery

File size: 14.2 KB
Line 
1var showtabs;
2var selectedTab;
3var interfaceTimerDelay;
4var isScrollable;
5var zoomMode;
6
7jQuery("document").ready(function(jQuery) {
8
9        zoomMode=options.defaultZoomSize;
10
11        // display alt from PWG stuffs actions
12
13        var stuffs_actions=jQuery(".categoryActions",".stuffs_block .stuffs");
14       
15        if (stuffs_actions.length != 0) {
16                stuffs_actions.each(function(index) {
17                        var images=jQuery(this).find("img");
18                        if (images.length !=0) {
19                                images.each(function(index) {
20                                        var alt_text = (jQuery(this).attr("alt"));
21                                        jQuery(this).before(alt_text);
22                                        jQuery(this).parents("li").css("width","auto");
23                                        jQuery(this).remove();
24                                });
25                        }
26                });
27        }
28       
29        // gmaps icon
30       
31        var icon_gmaps=jQuery("#icon_gmaps");
32        var text_gmaps=jQuery("#text_gmaps");
33        if ((icon_gmaps.length == 1) && (text_gmaps.length ==1)) {
34                icon_gmaps.text(text_gmaps.text());
35                icon_gmaps.css("text-align","right");
36                icon_gmaps.wrapAll('<li>');
37        }
38       
39        // Tabs
40
41        var tab_loaded=0;
42        var delay=400;
43        var hfirst;
44        //if (jQuery.browser.msie) {hfirst=false;} else {hfirst=true;}
45        hfirst=true;
46        var tab_titles=jQuery(".tabTitle");
47        var tab_blocks=jQuery(".tabBlock");
48        var tab_name;
49        var tab_start = null;
50       
51        if ( (options.defaultTab) && (options.themeStyle == "original") ) {
52                if (options.defaultTab != "none") tab_start = options.defaultTab;
53                if (options.defaultTab == "last") tab_start = jQuery.cookie("tabactive");
54        }
55
56        if ((tab_titles.length != 0) && (tab_titles.length == tab_blocks.length)) {
57
58                if (tab_start != null) {
59                        tab_blocks.each(function(index) {
60                                jQuery(this).css("display","none");
61                        });
62                        tab_loaded=1;
63                        jQuery("#tabs").css("height","auto");
64       
65                        tab_titles.each(function(index1) {
66                                tab_name = jQuery(this).attr("name");
67                                if (tab_name == tab_start) {
68                                        jQuery(this).addClass("tabSelected");
69                                        jQuery.cookie("tabactive",jQuery(this).attr("name"));
70                                        var old_selected_tab =-1;
71                                        tab_blocks.each(function(index2) {
72                                                if (index1 == index2) {
73                                                        jQuery(this).show();
74                                                }
75                                        });
76                                }
77                        });
78               
79                }
80
81                tab_titles.each(function(index1) {
82                        var tab_title = jQuery(this);
83                        tab_title.click(function () {
84                                if (tab_loaded==0) {
85                                        tab_blocks.each(function(index) {
86                                                jQuery(this).css("display","none");
87                                        });
88                                        tab_loaded=1;
89                                        jQuery("#tabs").css("height","auto");
90                                }
91                                if (jQuery(this).hasClass("tabSelected")) {
92                                        var tab_title = jQuery(this);
93                                        tab_blocks.each(function(index2) {
94                                                if (index1 == index2) {
95                                                        if (options.animatedTabs) {
96                                                                jQuery(this).slideUp(delay, function() {tab_title.removeClass("tabSelected");});
97                                                        } else {
98                                                                jQuery(this).hide();
99                                                                tab_title.removeClass("tabSelected");
100                                                        }
101                                                }
102                                        });
103                                        jQuery.cookie("tabactive",null);
104                                } else {
105                                        jQuery(this).addClass("tabSelected");
106                                        jQuery.cookie("tabactive",jQuery(this).attr("name"));
107                                        var old_selected_tab =-1;
108                                        tab_titles.each(function(index2) {
109                                                if ((index1 != index2) && (jQuery(this).hasClass("tabSelected"))) {
110                                                old_selected_tab=index2;
111                                                jQuery(this).removeClass("tabSelected");
112                                                }
113                                        });
114                                        tab_blocks.each(function(index2) {
115                                                if (index1 == index2) {
116                                                        if ((old_selected_tab == -1) && (options.animatedTabs)) {
117                                                                jQuery(this).slideDown(delay);
118                                                        } else {
119                                                                jQuery(this).show();
120                                                        }
121                                                }
122                                        });
123                                        tab_blocks.each(function(index2) {
124                                                if (index2 != index1) {
125                                                        jQuery(this).hide();
126                                                }
127                                        });
128                                }
129                        });
130                }); 
131               
132                if (options.themeStyle != "original") {
133                        jQuery("#content > .hideTabsZone").css("top",jQuery("#content").offset().top+"px");                     
134                        jQuery(".hideTabs").click(function() {
135                               
136                                tab_titles.each(function(index1) {
137                                        if (jQuery(this).hasClass("tabSelected")) {
138                                                var tab_title = jQuery(this);
139                                                tab_blocks.each(function(index2) {
140                                                        if (index1 == index2) {
141                                                                if (options.animatedTabs) {
142                                                                        jQuery(this).slideUp(delay, function() {tab_title.removeClass("tabSelected");});
143                                                                } else {
144                                                                        jQuery(this).hide();
145                                                                        tab_title.removeClass("tabSelected");
146                                                                }
147                                                        }
148                                                });
149                                                jQuery.cookie("tabactive",null);
150                                        } 
151                                });
152                       
153                        });
154                }
155        }
156
157       
158        // Image autosize function inspired from Autosize Plugin (from cljosse)
159
160        var img_ratio=image_w / image_h;
161
162        if ((options.imageAutosize) || (options.themeStyle != 'original')) {
163       
164                jQuery(window).resize(function () {
165                       
166                        var Fenetre = jQuery(window);
167                        var ImageContainer = jQuery("#theImageAndTitle");
168                        var ImageCadre = jQuery("#theImg");
169                        var Image = jQuery("img","#theImg");
170                        var TitleBox=jQuery("#imageTitleContainer");
171                        var Content=jQuery("#content");
172                       
173                        var marge_cote=5;
174                       
175                        var marge_sup = 5 + Content.offset().top;
176                        var marge_inf;
177                        if (options.themeStyle == 'original') {
178                                marge_inf = options.imageAutosizeMargin+10;     
179                                if (options.navArrows) marge_cote=20;
180                        } else {
181                                marge_inf = 30;
182                                if (options.navArrows) marge_cote=25;
183                        }
184                        var marge_spec = 0;
185
186                        if (ImageCadre.length == 0) {
187                                ImageContainer.css("opacity","1");
188                                jQuery("img","#theImageAndTitle").css("opacity","1");
189                                ImageContainer.css("top",marge_sup+"px");
190                                //maps & earth
191                                if (jQuery("#map").length == 1) {
192                                        ImageContainer.css("position","static");
193                                        ImageContainer.css("margin-top","10px");
194                                }
195                                return;
196                        }
197                       
198                        var slideshow=jQuery("#light_slideshow");
199                        if (slideshow.length!=0) {
200                                marge_inf = 5;
201                                marge_spec = 25;
202                        }
203                       
204                        if (Image.length != 1) {
205                                if (TitleBox.length !=0) TitleBox.css("width","97%");
206                                return;
207                        }
208
209                        var win_height = Fenetre.height();
210                        marge_inf = ImageContainer.height()-Image.height()+marge_inf;
211                        var img_H = win_height - marge_sup - marge_inf;
212
213                        if (options.imageAutosize) {
214                       
215                                var Hmin = options.imageAutosizeMinHeight;
216                               
217                                var max_H = img_H;
218
219                                if (img_H >= image_h) img_H = image_h;
220                                if (img_H <= Hmin) img_H = Hmin;
221
222                                var img_W = Math.round(parseFloat(img_H * img_ratio));
223                               
224                                var marge_image = ImageCadre.outerWidth() - Image.width();
225                                var ext_width;
226                               
227                                if (options.themeStyle == 'original') { ext_width = jQuery("#content").width();} else {ext_width = Fenetre.width();};
228                                var max_W = ext_width - marge_image - marge_cote * 2;
229                               
230                                if (img_W > max_W) {
231                                        img_H = Math.round(parseFloat(max_W / img_ratio));
232                                        img_W = max_W;
233                                }
234                       
235                                Image.css("width", img_W + "px");
236                                Image.css("height", img_H + "px");
237                       
238                        } else {
239                       
240                                img_H = image_h;
241
242                        }
243
244                        if (options.themeStyle != 'original') {
245                                var marge_tot = win_height - img_H - marge_inf - marge_sup - marge_spec;
246                                if (marge_tot < 0) marge_tot=0;
247                       
248                                var marge = marge_sup + Math.round(parseFloat(marge_tot / 2));
249
250                                ImageContainer.css("top",marge+"px");
251                        }
252
253                        // limit img title Container width
254
255                        if (TitleBox.length != 0) {
256                                TitleBox.css("min-width",jQuery("#theImg").outerWidth()+"px");
257                        }
258
259                        jQuery.cookie("stripped_max_width",max_W);
260                        jQuery.cookie("stripped_max_height",max_H);
261
262                        ImageContainer.css("opacity","1");
263                        ImageCadre.css("opacity","1");
264                        TitleBox.css("opacity","1");
265
266                        if (options.themeStyle != 'original') {
267                                var max_footer_width = jQuery("#content").width() - jQuery("#tabTitles").width() - 5;
268                                jQuery("#copyright").css("max-width",max_footer_width);
269                        }
270                        return;
271
272                });
273               
274                jQuery(window).resize();
275                jQuery(window).resize();
276       
277        }       else {
278                jQuery("#theImageAndTitle").css("opacity","1");
279                jQuery("#theImg").css("opacity","1");
280                jQuery("#imageTitleContainer").css("opacity","1");
281                jQuery("#theImageAndTitle").css("position","static");
282                jQuery("#theImageAndTitle").css("margin-top","10px");
283                var TitleBox=jQuery("#imageTitleContainer");
284                if (TitleBox.length !=0) TitleBox.css("width","97%");
285        }
286       
287               
288});
289
290
291
292// Scripts taken from Gally Theme
293
294function openDisplayHigh(url)
295{
296  jQuery('#theImageHigh').css(
297    {
298      width:jQuery("html").get(0).scrollWidth+"px",
299      height:jQuery("html").get(0).scrollHeight+"px",
300      display:"block"
301    }
302  );
303
304  if(jQuery("#theImgHigh").attr('src')=="")
305  {
306    p = new Object();
307    p.left = ((jQuery(window).width()-jQuery("#theImgHighContainer").prop("clientWidth")-options.paddingContainer*2)/2)+"px";
308    p.top = ((jQuery(window).height()-jQuery("#theImgHighContainer").prop("clientHeight")-options.paddingContainer*2)/2)+"px";
309
310
311    jQuery('#theImgHighContainer')
312      .css(
313        {
314          left:p.left,
315          top:p.top,
316          padding:options.paddingContainer+"px"
317        }
318      );
319
320
321    jQuery("#theImgHigh")
322      .load(
323        function ()
324        {
325          jQuery(document).data("highWidth", jQuery("#theImgHigh").width());
326          jQuery(document).data("highHeight", jQuery("#theImgHigh").height());
327
328          p=calcImgHighPositionAndSize(zoomMode);
329
330          jQuery('#theImgHighContainer').css("background-image", "none")
331          displayZoomHigh();
332          jQuery("#theImgHigh").css( {display:"block"} );
333        }
334      )
335      .attr('src', url);
336
337    if(options.highResClickMode=='close')
338    {
339      jQuery("#theImgHigh").bind('click', closeDisplayHigh);
340    }
341    else
342    {
343      // switch zoom
344      jQuery("#theImgHigh").bind('click', switchZoomHigh);
345    }
346  }
347  else
348  {
349    p=calcImgHighPositionAndSize(zoomMode);
350
351    jQuery('#theImgHighContainer')
352      .css(
353        {
354          left:p.left+"px",
355          top:p.top+"px",
356          width:p.width+"px",
357          height:p.height+"px"
358        }
359      );
360  }
361}
362
363function calcImgHighPositionAndSize(zoom)
364{
365  p = new Object();
366  imgH = jQuery(document).data("highHeight") 
367  imgW = jQuery(document).data("highWidth") 
368
369  if(zoom=='full')
370  {
371    p.width = (jQuery("html").get(0).clientWidth-(options.marginContainer+options.paddingContainer)*2);
372    p.height = (jQuery("html").get(0).clientHeight-(options.marginContainer+options.paddingContainer)*2);
373    p.left=options.marginContainer;
374    p.top=options.marginContainer;
375
376    if(p.width>imgW)
377    {
378      p.width = imgW;
379      p.left = (jQuery("html").get(0).clientWidth-p.width)/2;
380      jQuery("#theImgHighZoomButton").hide();
381    }
382
383    if(p.height>imgH)
384    {
385      p.height = imgH;
386      p.top = (jQuery("html").get(0).clientHeight-p.height)/2;
387      jQuery("#theImgHighZoomButton").hide();
388    }
389       
390        if ((p.width==imgW) && (p.height==imgH)) switchZoomHigh();
391  }
392  else
393  {
394    //zoom = 'fit'
395        ratioImg = imgW / imgH;
396    ratioPage = jQuery("html").get(0).clientWidth / jQuery("html").get(0).clientHeight;
397
398    if((ratioPage > 1 && (ratioPage > ratioImg)) ||
399       (ratioPage < 1 && (ratioPage < ratioImg)))
400    {
401      p.height = (jQuery("html").get(0).clientHeight-(options.marginContainer+options.paddingContainer)*2);
402      p.width = p.height*ratioImg;
403    }
404    else
405    {
406      p.width = (jQuery("html").get(0).clientWidth-(options.marginContainer+options.paddingContainer)*2);
407      p.height = p.width/ratioImg;
408    }
409       
410        if ((p.width > imgW) || (p.height > imgH)) {
411                p.height = imgH;
412                p.width = imgW;
413                jQuery("#theImgHighZoomButton").hide();
414        }
415    p.left = (jQuery("html").get(0).clientWidth-p.width)/2;
416    p.top = (jQuery("html").get(0).clientHeight-p.height)/2;
417  }
418
419  return(p);
420}
421
422function closeDisplayHigh()
423{
424  jQuery('#theImageHigh').css('display', 'none');
425}
426
427function switchZoomHigh()
428{
429  if(zoomMode=='full')
430  {
431    zoomMode="fit";
432  }
433  else
434  {
435    zoomMode="full";
436  }
437
438  jQuery("#theImgHighZoomButton").toggleClass('full').toggleClass('fit');
439
440  displayZoomHigh();
441}
442
443function displayZoomHigh()
444{
445  p=calcImgHighPositionAndSize(zoomMode);
446
447  jQuery('#theImgHighContainer').css(
448      {
449        left:p.left+"px",
450        top:p.top+"px",
451        width:p.width+"px",
452        height:p.height+"px"
453      }
454    );
455
456    if(zoomMode=="full")
457    {
458      jQuery("#theImgHigh")
459        .css(
460          {
461            width:jQuery(document).data("highWidth")+"px",
462            height:jQuery(document).data("highHeight")+"px"
463          }
464        );
465      jQuery('#theImgHighContainer').bind("mousemove",
466          function(event)
467          {
468            deadArea = options.marginContainer*2;
469            mouseX=Math.max(Math.min(event.clientX-this.offsetLeft, this.clientWidth - deadArea), deadArea);
470            mouseY=Math.max(Math.min(event.clientY-this.offsetTop, this.clientHeight - deadArea), deadArea);
471            jQuery("#theImgHigh")
472              .css("left",Math.round((jQuery("#theImgHigh").prop("scrollWidth")-this.clientWidth) * -(mouseX-deadArea)/(this.clientWidth-2*deadArea))+"px")
473              .css("top",Math.round((jQuery("#theImgHigh").prop("scrollHeight")-this.clientHeight) * -(mouseY-deadArea)/(this.clientHeight-2*deadArea))+"px");
474          }
475        );
476    }
477    else
478    {
479      jQuery("#theImgHigh")
480        .css(
481          {
482            width:p.width+"px",
483            height:p.height+"px",
484            left:"0px",
485            top:"0px"
486          }
487        );
488      jQuery('#theImgHighContainer').unbind("mousemove");
489    }
490}
491/**
492 * Cookie plugin
493 * Copyright (c) 2006 Klaus Hartl (stilbuero.de)
494 * Dual licensed under the MIT and GPL licenses:
495 */
496jQuery.cookie=function(name,value,options){if(typeof value!='undefined'){options=options||{};if(value===null){value='';options=jQuery.extend({},options);options.expires=-1;}
497var expires='';if(options.expires&&(typeof options.expires=='number'||options.expires.toUTCString)){var date;if(typeof options.expires=='number'){date=new Date();date.setTime(date.getTime()+(options.expires*24*60*60*1000));}else{date=options.expires;}
498expires='; expires='+date.toUTCString();}
499var path=options.path?'; path='+(options.path):'';var domain=options.domain?'; domain='+(options.domain):'';var secure=options.secure?'; secure':'';document.cookie=[name,'=',encodeURIComponent(value),expires,path,domain,secure].join('');}else{var cookieValue=null;if(document.cookie&&document.cookie!=''){var cookies=document.cookie.split(';');for(var i=0;i<cookies.length;i++){var cookie=jQuery.trim(cookies[i]);if(cookie.substring(0,name.length+1)==(name+'=')){cookieValue=decodeURIComponent(cookie.substring(name.length+1));break;}}}
500return cookieValue;}};
501
502
503
504
Note: See TracBrowser for help on using the repository browser.