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

Last change on this file since 12659 was 12659, checked in by Zaphod, 12 years ago

version 2.0.3

File size: 13.1 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       
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) {
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) && (options.animatedTabs)) {
95                                                        jQuery(this).slideUp(delay, function() {tab_title.removeClass("tabSelected");});
96                                                } else {
97                                                        jQuery(this).hide();
98                                                }
99                                        });
100                                        jQuery.cookie("tabactive",null);
101                                } else {
102                                        jQuery(this).addClass("tabSelected");
103                                        jQuery.cookie("tabactive",jQuery(this).attr("name"));
104                                        var old_selected_tab =-1;
105                                        tab_titles.each(function(index2) {
106                                                if ((index1 != index2) && (jQuery(this).hasClass("tabSelected"))) {
107                                                old_selected_tab=index2;
108                                                jQuery(this).removeClass("tabSelected");
109                                                }
110                                        });
111                                        tab_blocks.each(function(index2) {
112                                                if (index1 == index2) {
113                                                        if ((old_selected_tab == -1) && (options.animatedTabs)) {
114                                                                jQuery(this).slideDown(delay);
115                                                        } else {
116                                                                jQuery(this).show();
117                                                        }
118                                                }
119                                        });
120                                        tab_blocks.each(function(index2) {
121                                                if (index2 != index1) {
122                                                        jQuery(this).hide();
123                                                }
124                                        });
125                                }
126                        });
127                }); 
128        }
129
130       
131        // Image autosize function inspired from Autosize Plugin (from cljosse)
132
133        var img_ratio=image_w / image_h;
134
135        if (options.imageAutosize) {
136       
137                // Autosize image
138                jQuery(window).resize(function () {
139                       
140                        var Fenetre = jQuery(window);
141                        var ImageContainer = jQuery("#theImageAndTitle");
142                        var ImageCadre = jQuery("#theImg");
143                        var Image = jQuery("img","#theImg");
144                        var TitleBox=jQuery("#imageTitleContainer");
145
146                        var marge_cote;
147
148                        if (ImageCadre.length == 0) {
149                                ImageContainer.css("opacity","1");
150                                jQuery("img","#theImageAndTitle").css("opacity","1");
151                                return;
152                        }
153                       
154                        if (options.navArrows) {marge_cote=30;} else {marge_cote=10;};
155
156                        var marge_sup = 30;
157                        var marge_inf;
158                        if (options.themeStyle == 'original') { marge_inf = options.imageAutosizeMargin+10;} else { marge_inf = 30;};
159                        var marge_spec = 0;
160                       
161                        var slideshow=jQuery("#light_slideshow");
162                        if (slideshow.length!=0) {
163                                marge_inf = 5;
164                                marge_spec = 25;
165                        }
166                       
167                        var Hmin = options.imageAutosizeMinHeight;
168                       
169                        if (Image.length != 1) {
170                                if (TitleBox.length !=0) TitleBox.css("width","97%");
171                                return;
172                        }
173
174                        marge_inf = ImageContainer.height()-Image.height()+marge_inf;
175                        var win_height = Fenetre.height();
176                        var img_H = win_height - marge_sup - marge_inf;
177                        var max_H = img_H;
178
179                       
180                        if (img_H >= image_h) img_H = image_h;
181                        if (img_H <= Hmin) img_H = Hmin;
182
183                        var img_W = Math.round(parseFloat(img_H * img_ratio));
184                       
185
186                        var marge_image = ImageCadre.outerWidth() - Image.width();
187/* à modifier */
188                        var ext_width;
189                       
190                        if (options.themeStyle == 'original') { ext_width = jQuery("#content").width();} else {ext_width = Fenetre.width();};
191                        var max_W = ext_width - marge_image - marge_cote * 2;
192                       
193                        if (img_W > max_W) {
194                                img_H = Math.round(parseFloat(max_W / img_ratio));
195                                img_W = max_W;
196                        }
197                       
198                        Image.css("width", img_W + "px");
199                        Image.css("height", img_H + "px");
200
201                        if (options.themeStyle != 'original') {
202                                var marge_tot = win_height - img_H - marge_inf - marge_sup - marge_spec;
203                                if (marge_tot < 0) marge_tot=0;
204                       
205                                var marge = marge_sup + Math.round(parseFloat(marge_tot / 2));
206
207                                ImageContainer.css("top",marge+"px");
208                        }
209
210                        // limit img title Container width
211
212                        if (TitleBox.length != 0) {
213                                TitleBox.css("min-width",jQuery("#theImg").outerWidth()+"px");
214                        }
215
216                        jQuery.cookie("stripped_max_width",max_W);
217                        jQuery.cookie("stripped_max_height",max_H);
218
219                        ImageContainer.css("opacity","1");
220                        ImageCadre.css("opacity","1");
221                        TitleBox.css("opacity","1");
222
223
224                        // limit img title Container width
225/*
226                        if (TitleBox.length != 0) {
227                                var TBminW = jQuery("#theImg").outerWidth();
228                                TitleBox.css("min-width",TBminW + "px");
229                                if (TitleBox.width() > TBminW) {
230                                        TitleBox.children().css("text-align","justify");
231                                } else {
232                                        TitleBox.children().css("text-align","center");
233                                }
234                        }
235*/
236                        // test
237                        if (options.themeStyle != 'original') {
238                                var max_footer_width = jQuery("#content").width() - jQuery("#tabTitles").width() - 5;
239                                jQuery("#copyright").css("max-width",max_footer_width);
240                        }
241                        return;
242
243                });
244               
245                jQuery(window).resize();
246                jQuery(window).resize();
247       
248        }       else {
249                jQuery("#theImageAndTitle").css("opacity","1");
250                jQuery("#theImg").css("opacity","1");
251                jQuery("#imageTitleContainer").css("opacity","1");
252                var TitleBox=jQuery("#imageTitleContainer");
253                if (TitleBox.length !=0) TitleBox.css("width","97%");
254               
255        }
256       
257               
258});
259
260
261
262// Scripts taken from Gally Theme
263
264function openDisplayHigh(url)
265{
266  jQuery('#theImageHigh').css(
267    {
268      width:jQuery("html").get(0).scrollWidth+"px",
269      height:jQuery("html").get(0).scrollHeight+"px",
270      display:"block"
271    }
272  );
273
274  if(jQuery("#theImgHigh").attr('src')=="")
275  {
276    p = new Object();
277    p.left = ((jQuery(window).width()-jQuery("#theImgHighContainer").prop("clientWidth")-options.paddingContainer*2)/2)+"px";
278    p.top = ((jQuery(window).height()-jQuery("#theImgHighContainer").prop("clientHeight")-options.paddingContainer*2)/2)+"px";
279
280
281    jQuery('#theImgHighContainer')
282      .css(
283        {
284          left:p.left,
285          top:p.top,
286          padding:options.paddingContainer+"px"
287        }
288      );
289
290
291    jQuery("#theImgHigh")
292      .load(
293        function ()
294        {
295          jQuery(document).data("highWidth", jQuery("#theImgHigh").width());
296          jQuery(document).data("highHeight", jQuery("#theImgHigh").height());
297
298          p=calcImgHighPositionAndSize(zoomMode);
299
300          jQuery('#theImgHighContainer').css("background-image", "none")
301          displayZoomHigh();
302          jQuery("#theImgHigh").css( {display:"block"} );
303        }
304      )
305      .attr('src', url);
306
307    if(options.highResClickMode=='close')
308    {
309      jQuery("#theImgHigh").bind('click', closeDisplayHigh);
310    }
311    else
312    {
313      // switch zoom
314      jQuery("#theImgHigh").bind('click', switchZoomHigh);
315    }
316  }
317  else
318  {
319    p=calcImgHighPositionAndSize(zoomMode);
320
321    jQuery('#theImgHighContainer')
322      .css(
323        {
324          left:p.left+"px",
325          top:p.top+"px",
326          width:p.width+"px",
327          height:p.height+"px"
328        }
329      );
330  }
331}
332
333function calcImgHighPositionAndSize(zoom)
334{
335  p = new Object();
336
337  if(zoom=='full')
338  {
339    p.width = (jQuery("html").get(0).clientWidth-(options.marginContainer+options.paddingContainer)*2);
340    p.height = (jQuery("html").get(0).clientHeight-(options.marginContainer+options.paddingContainer)*2);
341    p.left=options.marginContainer;
342    p.top=options.marginContainer;
343
344    if(p.width>jQuery(document).data("highWidth"))
345    {
346      p.width = jQuery(document).data("highWidth")-options.paddingContainer*2;
347      p.left = (jQuery("html").get(0).clientWidth-p.width)/2;
348    }
349
350    if(p.height>jQuery(document).data("highHeight"))
351    {
352      p.height = jQuery(document).data("highHeight")-options.paddingContainer*2;
353      p.top = (jQuery("html").get(0).clientHeight-p.height)/2;
354    }
355  }
356  else
357  {
358    //zoom = 'fit'
359    ratioImg = jQuery(document).data("highWidth") / jQuery(document).data("highHeight");
360    ratioPage = jQuery("html").get(0).clientWidth / jQuery("html").get(0).clientHeight;
361
362    if((ratioPage > 1 && (ratioPage > ratioImg)) ||
363       (ratioPage < 1 && (ratioPage < ratioImg)))
364    {
365      p.height = (jQuery("html").get(0).clientHeight-(options.marginContainer+options.paddingContainer)*2);
366      p.width = p.height*ratioImg;
367    }
368    else
369    {
370      p.width = (jQuery("html").get(0).clientWidth-(options.marginContainer+options.paddingContainer)*2);
371      p.height = p.width/ratioImg;
372    }
373    p.left = (jQuery("html").get(0).clientWidth-p.width)/2;
374    p.top = (jQuery("html").get(0).clientHeight-p.height)/2;
375  }
376
377  return(p);
378}
379
380function closeDisplayHigh()
381{
382  jQuery('#theImageHigh').css('display', 'none');
383}
384
385function switchZoomHigh()
386{
387  if(zoomMode=='full')
388  {
389    zoomMode="fit";
390  }
391  else
392  {
393    zoomMode="full";
394  }
395
396  jQuery("#theImgHighZoomButton").toggleClass('full').toggleClass('fit');
397
398  displayZoomHigh();
399}
400
401function displayZoomHigh()
402{
403  p=calcImgHighPositionAndSize(zoomMode);
404
405  jQuery('#theImgHighContainer').css(
406      {
407        left:p.left+"px",
408        top:p.top+"px",
409        width:p.width+"px",
410        height:p.height+"px"
411      }
412    );
413
414    if(zoomMode=="full")
415    {
416      jQuery("#theImgHigh")
417        .css(
418          {
419            width:jQuery(document).data("highWidth")+"px",
420            height:jQuery(document).data("highHeight")+"px"
421          }
422        );
423      jQuery('#theImgHighContainer').bind("mousemove",
424          function(event)
425          {
426            deadArea = options.marginContainer*2;
427            mouseX=Math.max(Math.min(event.clientX-this.offsetLeft, this.clientWidth - deadArea), deadArea);
428            mouseY=Math.max(Math.min(event.clientY-this.offsetTop, this.clientHeight - deadArea), deadArea);
429            jQuery("#theImgHigh")
430              .css("left",Math.round((jQuery("#theImgHigh").prop("scrollWidth")-this.clientWidth) * -(mouseX-deadArea)/(this.clientWidth-2*deadArea))+"px")
431              .css("top",Math.round((jQuery("#theImgHigh").prop("scrollHeight")-this.clientHeight) * -(mouseY-deadArea)/(this.clientHeight-2*deadArea))+"px");
432          }
433        );
434    }
435    else
436    {
437      jQuery("#theImgHigh")
438        .css(
439          {
440            width:p.width+"px",
441            height:p.height+"px",
442            left:"0px",
443            top:"0px"
444          }
445        );
446      jQuery('#theImgHighContainer').unbind("mousemove");
447    }
448}
449/**
450 * Cookie plugin
451 * Copyright (c) 2006 Klaus Hartl (stilbuero.de)
452 * Dual licensed under the MIT and GPL licenses:
453 */
454jQuery.cookie=function(name,value,options){if(typeof value!='undefined'){options=options||{};if(value===null){value='';options=jQuery.extend({},options);options.expires=-1;}
455var 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;}
456expires='; expires='+date.toUTCString();}
457var 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;}}}
458return cookieValue;}};
459
460
461
462
Note: See TracBrowser for help on using the repository browser.