source: extensions/stripped_responsive/js/scripts-tpp.js @ 29580

Last change on this file since 29580 was 29449, checked in by JanisV, 10 years ago

Initial commit

  • Property svn:executable set to *
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.