source: extensions/Slide/js/slide.js @ 27778

Last change on this file since 27778 was 27741, checked in by Miklfe, 11 years ago

amélioration de la compatibilité avec MyPiwiShop

File size: 22.2 KB
Line 
1/************************************************************************************
2 *                                                                                                                                                                      *                                                               
3 *                                                                                                                                                                      *
4 *                                                      Slide - v2.0 - 2013-10-01                                                               *
5 *                                                       http://piwitheme.fr/                                                                   *
6 *                                                                                                                                                                      *
7 *                                                                                                                                                                      *
8*************************************************************************************/
9 
10(function($) {
11//_________________________________________________________________________________________________________________________________
12//||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
13
14        $(document).ready(function(){
15                $('body').prepend($('<div />').attr({'class':'tab','id':'tab-0','data-urltab':window.location}).append($('<div />').attr('class','sld_tab'))).wrapInner($('<div />').attr({'class':'pageslide','id':'layer-0'}));
16                $('.pageslide').first().show();
17                var $w_w                = $(window).width(),
18                        $w_h            = $(window).height(),
19                        $tab            = 40,
20                        i                       = 0,
21                        $layerShow      = $('#layer-0'),
22                        $slideshow      = [];
23                       
24                $('body').append($('<div />').attr('id','slideLoading').css({top:(($w_h/2)-50),left:(($w_w/2)-50)}));
25                $('body').data('layerShow',$layerShow);
26                _init_page()
27               
28                $(document).on('click','.slide', function(e) {
29                        var $url        = $(this).attr('href');
30                       
31                        $int            = setTimeout(function() {
32                                $('#slideLoading').css('z-index',1000)
33                                }, 500);
34                        i++;
35                       
36                        _load($url);
37                        _pushstate($url);       
38                       
39                        e.preventDefault();
40                });
41
42                $(document).on('click','.sameLayer', function(e) {
43                        var $href               = $(this).attr('href'),
44                                $layerShow      = $('body').data('layerShow'),
45                                $url            = $href + ' #the_page',
46                                $slide_w        = $layerShow.width();
47                               
48                        _pushstate($href);
49                       
50                        if ($('.slshFirst').length){
51                                $urlFirst       = $('.slshFirst').attr('href')
52                        } else {
53                                $urlFirst       = $href 
54                        };
55                       
56                        $('#the_page',$layerShow).addClass('unwrap').load($url, function(){
57                                _init_page($urlFirst,$slide_w)
58                                $('.unwrap').children().unwrap();
59                        });     
60                       
61                        e.preventDefault();
62                });     
63               
64                $(document).on('click','.tab', function(e) {
65                        _close( $(this) );
66                        var $url = $(this).data('urltab');
67                        _pushstate($url);                               
68                });
69               
70                $(document).on('submit','#quicksearch', function(e) {
71                        i++;
72                        var $val        = $('#qsearchInput').attr('value'),
73                                $url    = 'qsearch.php?q='+ $val,
74                                frame   = $("<iframe />").attr({src: $url,id: 'frame'}).css({display:'none'});
75                               
76                                $('body').append(frame);
77                               
78                                setTimeout(     function () {
79                                        var $obj = $("#frame").contents(),
80                                                $urlframe = $obj[0].location.href;
81                                        $('#frame').pushstate($urlframe);
82                                        $('#frame').remove()
83                                        },
84                                1000);
85                               
86                        _load($url);
87                        $(this).attr('value', qsearch_prompt);
88                       
89                        e.preventDefault();
90                });
91
92// Picture page rating
93                $(document).on('mouseover','.rateButton',function(){
94                        $('#rateForm input').each(function(){
95                                $(this).removeClass('rateButtonFull').removeClass('rateButtonSelected');
96                                });
97                        $(this).addClass('rateButtonFull');
98                        var rate        = $(this).attr('title'),
99                                nth             = ':nth-child(-n+' + rate + ')';
100                        $('.rateButton' + nth).addClass('rateButtonFull');
101                });
102                               
103                $(document).on('mouseout','#rateForm',function(){
104                        $('#rateForm input').each(function(){
105                                $(this).removeClass('rateButtonFull').addClass('rateButton');
106                        });
107                        $('#rateForm input[type="button"]').addClass('rateButtonSelected');
108                        _rate_star()
109                });
110                               
111                $(document).on('click','.rateButton', function(e){
112                        var form        = $(this).parents('form'),
113                                hrefa   = form.attr('action'),
114                                hrefm   = form.attr('method'),
115                                rate    = $(this).attr('title'),
116                                rate    = 'rate=' + rate;
117                        $.ajax({
118                                url             : hrefa,
119                                type    : hrefm,
120                                data    : rate,
121                                success : function(){
122                                        hrefa = hrefa.substring(0,hrefa.indexOf('&'));
123                                        hrefInf = hrefa + ' #imageInfos';
124                                        $('#imageInfos').addClass('unwrap').load(hrefInf,function(){
125                                                _rate_star();
126                                                _imageInfo();
127                                                $('.unwrap').children().unwrap();
128                                        });
129                                }
130                        });
131                        e.preventDefault();
132                });
133               
134//switchbox derivative
135                $(document).on('click','.derivative', function(){
136                        var url                 = $(this).data('url'),
137                                typeSave        = $(this).data('typesave'),
138                                typeMap         = $(this).data('typemap'),
139                                cookies         = $(this).data('cookie')
140                                theImg          = $('#theMainImage');
141                        theImg.attr({'width':'' ,'height':'', 'src': url , 'useMap': '#map' + typeMap});
142                        $('#derivativeSwitchBox .switchCheck').css('visibility','hidden');
143                        $('#derivativeChecked' + typeSave).css('visibility','visible');
144                        document.cookie = 'picture_deriv='+typeSave+';path=cookies';
145                });             
146               
147                $(document).on('click','.original',function(){
148                        var theURL              = $(this).data('url'),
149                                winName         = $(this).data('winname'),
150                                features        = $(this).data('features');
151                        $.getScript('./themes/default/js/scripts.js', function(){
152                                phpWGOpenWindow(theURL,winName,features)
153                        });
154                });
155               
156                $(document).on('click','.privacy', function(){
157                        var rootUrl             = $(this).data('root'),
158                                id                      = $(this).data('id'),
159                                level           = $(this).data('level');
160                        setPrivacyLevel(rootUrl, id, level);
161                });
162
163//add comment
164                $(document).on('click', '#addComment input[type=submit]', function(e){
165                        $(this).valid_comment();
166                        e.preventDefault();
167                });
168                $(document).on('click', '#editComment input[type=submit]',  function(e){
169                        $(this).valid_comment();
170                        e.preventDefault(); 
171                });
172
173// removal/edit comment
174                $(document).on('click', '.actions a', function(e){
175                        var $a          = $(this);
176                        if($a.hasClass('delet')){
177                                var     $confi  = $a.attr('confirm');
178                                if (confirm($confi)) {
179                                        _rem_ed($a);
180                                };
181                        }
182                        _rem_ed($a);
183                        e.preventDefault();
184                });
185               
186//Change the order of comments
187                $(document).on('click', '.commentsOrder', function(e){
188                        var $a          = $(this);
189                        _rem_ed($a);
190                        e.preventDefault();
191                });
192
193//edit profil           
194                $(document).on('click', '#profile input[name=reset_to_default]', function(e){
195                        var $profil             = $('#profile'),
196                                $profilhref     = $profil.attr('action'),
197                                $profilmet      = $profil.attr('method'),
198                                $profilser      = $profil.serialize(),
199                                $profilval      = $(this).attr('value'),
200                                $profilnam      = $(this).attr('name'),
201                                $data = $profilser + '&' + $profilnam + '=' + $profilval;
202                                $.ajax({           
203                                        url             : $profilhref, 
204                                        type    : $profilmet, 
205                                        data    : $data, 
206                                        success : function(html) {
207                                                var $content = $(html).find('#profile');
208                                                $profil.replaceWith($content)
209                                        }
210                                });                     
211                        e.preventDefault();
212                });
213
214// search page
215                $(document).on('submit', '.theSearchPage .filter', function(e){
216                        var $sch                = $('.filter'),
217                                $schmet         = $sch.attr('method'),
218                                $schser         = $sch.serialize(),
219                                $schhref        = $sch.attr('action');
220                                $schser         = $schser+"&submit=Valide";
221                        $.ajax({           
222                                url             : $schhref, 
223                                type    : $schmet, 
224                                data    : $schser, 
225                                success : function(html){
226                                        var $e = $(html).find('.errors');
227                                        if($e.leng$th){
228                                                var $inf = $e.text();
229                                                _message($inf);
230                                        } else {
231                                                var $href               = $(html).find('.titrePage h2 a:nth-child(2)').attr('href'),
232                                                        $layerShow      = $('body').data('layerShow'),
233                                                        $url            = $href + ' #the_page';
234                                                $('#the_page', $layerShow).addClass('unwrap').load($url,function(){
235                                                        _init_page();
236                                                        $('.unwrap').children().unwrap();
237                                                });
238                                        };     
239                                }
240                        });
241                        e.preventDefault();
242                });
243                               
244//comment page
245                $(document).on('submit', '.theCommentsPage .filter',  function(e){
246                        var $com                = $('.filter'),
247                                $commet         = $com.attr('method'),
248                                $comser         = $com.serialize(), 
249                                $comhref        = $com.attr('action');
250                        $.ajax({           
251                                url             : $comhref, 
252                                type    : $commet, 
253                                data    : $comser, 
254                                success : function(html){
255                                        var $layerShow          = $('body').data('layerShow'),
256                                                $comfilt                = $(html).find('#content');
257                                        $('#content', $layerShow).replaceWith($comfilt);       
258                                }
259                        });
260                        e.preventDefault();
261                });
262               
263//switchBox
264                var $optbox = [ {li : '#sortOrderLink', box : '#sortOrderBox'},
265                                                {li : '#derivativeSwitchLink' , box : '#derivativeSwitchBox'},
266                                                {li : '#privacyLevelLink' , box : '#privacyLevelBox'},
267                                                {li : '#calendarViewSwitchLink' , box : '#calendarViewSwitchBox'}
268                                                ];
269                $.each($optbox, function(i, a){
270                        $(document).on('click', a.li , function(e) {
271                                var $layerShow  = $('body').data('layerShow'),
272                                        $ele            = $( a.box  , $layerShow),
273                                        ePos            = $(this).position(),
274                                        ePos_h          = $(this).height();
275                                if ($ele.is(":hidden")){
276                                        var left        = (ePos.left) + 'px',
277                                                top             = (ePos.top + ePos_h) + 'px';
278                                        $ele.css({left: left , top: top }).show();
279                                }
280                        e.preventDefault();     
281                        });
282                        $(document).on('mouseleave', a.box, function() {
283                                $(this).hide();
284                        });
285                });
286               
287//_____function SLIDE______________________________________________________________________________________________________________________________________________
288                function _init_page($urlFirst,$slide_w) {
289                var $layerShow  = $('body').data('layerShow');
290                        _selectPageSlide();
291                        _display_menu();
292                        _titre_page();
293                        _scrollbar();
294                        _content_size();
295                        _piwitheme_link();
296                        _dragbar_tabs();
297                        if($('#the_page',$layerShow).hasClass('thePicturePage')){
298                                _rate_star();
299                                _imageInfo()
300                        };
301                        if($('#the_page',$layerShow).hasClass('EC_drag')||$('#the_page',$layerShow).hasClass('EC_tictac')){
302                                _ECaptcha();
303                        };
304                        if($('#slideshow').length){
305                                $('#theHeader', $layerShow).remove();
306                                _load_slideshow($urlFirst, $slide_w);
307                               
308                        };
309                        if($('body').hasClass('lightbox')||$('body').hasClass('lightboxReady')) {
310                                _lightbox()                             
311                        };
312                        if($('body').hasClass('GThumb')||$('body').hasClass('GThumbReady')) {
313                                _GThumb()
314                        };
315                        if($('body').hasClass('MyPiwiShop')||$('body').hasClass('MyPiwiShopReady')) {
316                                _MyPiwiShop()
317                        };
318
319                };             
320               
321                function _load( $url ) {
322                        var     $z                              = (100 / i).toFixed(),
323                                $tab                    = 40 * i,
324                                $pageslide_w    = $w_w - $tab,
325                                $href                   = $url + ' #the_page';
326                               
327                        $('body').append($('<div />').attr('class','pageslide').css({ left: 'auto', right: '-' + $w_w + 'px' }));
328                        $('.pageslide').attr('id', function(i){
329                                return "layer-" + i;
330                        });
331                       
332                        var $layerPrev          = $('#layer-' + (i - 1)),
333                                $layerShow              = $('#layer-' + i);
334
335                        $layerShow.css({'z-index'       : $z,
336                                                        width           : $pageslide_w +'px'
337                        })     
338                        $('body').data('layerShow',$layerShow);
339                        $('body').data('layerPrev',$layerPrev);
340                        $('body').data( 'i',i);
341                        $layerShow.load( $href, function(){
342                                $layerPrev      .css({right:'auto'})
343                                                        .animate({marginLeft: - $pageslide_w + ((i - 1) * 40)}, 1000);
344                                $layerShow      .show()
345                                                        .animate({right: 0}, 1000)
346                                                        .prepend($('<div />')
347                                                        .attr({'class':'tab','id':'tab-0','data-urltab':window.location})
348                                                        .append($('<div />').attr('class','sld_tab')));
349                                $('.tab').attr('id', function(i){
350                                        return "tab-" + i;
351                                });
352                                $('#slideLoading').css('z-index',0);
353                                clearTimeout($int);
354                                _init_page($url, $pageslide_w)
355                        });
356                };
357
358                function _selectPageSlide(){
359                        var $layerShow  = $('body').data('layerShow'),
360                                $a                      = [     '#menu_start a',
361                                                                '.navigationBar a',
362                                                                '.calendarBar a',
363                                                                '.calendarCalBar a',
364                                                                '.navigationButtons a',
365                                                                '#imageHeaderBar a',
366                                                                '.calImg a',
367                                                                '.date_today',
368                                                                '#sortOrderLink',
369                                                                '#sortOrderBox a',
370                                                                '#derivativeSwitchBox a',
371                                                                '#derivativeSwitchLink',
372                                                                '.actionButtons a',
373                                                                '.actions a',
374                                                                '.navThumb',
375                                                                '.calendarTitle a',
376                                                                '#linkToPiwigo a',
377                                                                '#copyright a',
378                                                                '#languageSwitchLink',
379                                                                '#languageSwitchBox a',
380                                                                '#theHeader a',
381                                                                '#myHomePage a',
382                                                                '#mbAdditionalPages a',
383                                                                '#photosAddContent a',
384                                                                '.amm-MenuBar-links-icons a',
385                                                                '.commentsOrder',
386                                                                '#calendarViewSwitchLink',
387                                                                '#calendarViewSwitchBox a',
388                                                                '#ato_header a',
389                                                                '#ato_header_closed a',
390                                                                'a[rel=colorbox0]'
391                                                                ],
392                                $b                      = [     '.pwg-icon-letters',
393                                                                '.pwg-icon-cloud',
394                                                                '.pwg-icon-help',
395                                                                '.pwg-icon-calendar',
396                                                                '.pwg-icon-camera-calendar',
397                                                                '.pwg-icon-favorite-del',
398                                                                '.pwg-icon-caddie-add',
399                                                                '.pwg-icon-category-view-flat',
400                                                                '.pwg-icon-category-view-normal',
401                                                                '#thePicturePage .pwg-icon-slideshow',
402                                                                '#thePicturePage .pwg-icon-camera-info',
403                                                                '#thePicturePage .pwg-icon-save',
404                                                                '#thePicturePage .pwg-icon-favorite-add',
405                                                                '#thePicturePage .pwg-icon-representative',
406                                                                '#thePicturePage .pwg-icon-edit',
407                                                                '.pwg-icon-category-edit'
408                                                                ],
409                                $c                      = [     '.description_stuffs .zero nb-comments',
410                                                                '.description_stuffs .nb-hits',
411                                                                '.description_stuffs .nb-comments'
412                                                                ],
413                                $d                      = [ '.pwg-icon-arrow-n'
414                                                                ],
415                                $e                      = [     '#linkToPiwigo a',
416                                                                '#copyright a'
417                                                                ],
418                                $f                      = [ '.navigationButtons a',
419                                                                '.navThumbs a',
420                                                                '.navigationBar a',
421                                                                '#derivativeSwitchBox a',
422                                                                '#sortOrderBox a',
423                                                                '#theMainImage map area a',
424                                                                '#calendarViewSwitchBox a',
425                                                                '.calImg a',
426                                                                ];
427                                $g                      = [ '.pwg-icon-caddie-add',
428                                                                '.pwg-icon-category-view-normal',
429                                                                '.pwg-icon-calendar',
430                                                                '.pwg-icon-camera-calendar'
431                                                                ];
432                                                               
433                        if($('body').hasClass('withlightbox')) {       
434                                        $a.push('.illustration a');
435                                };
436                                       
437                        $.each($a, function(i,e) {
438                                $(e, $layerShow).addClass('noSlide')
439                        });
440                        $.each($b, function(i,e) {
441                                $(e, $layerShow).parent().addClass('noSlide')
442                        });
443                        $.each($c,function(i,e) {
444                                $(e, $layerShow).remove()
445                        });
446                        $.each($d,function(i,e) {
447                                $(e, $layerShow).parent().remove()
448                        });
449                        $.each($e,function(i,e) {
450                                $(e, $layerShow).attr('target','blank')
451                        });
452                        $.each($f, function(i,e) {
453                                $(e, $layerShow).addClass('sameLayer')
454                        });
455                        $.each($g, function(i,e) {
456                                $(e, $layerShow).parent().addClass('sameLayer')
457                        });
458
459                        $('a:not(.noSlide)', $layerShow).addClass('slide');
460                        $('#layer-0 ').find('.sameLayer').removeClass('sameLayer');
461
462                        $('.stuffs_block .illustration .description', $layerShow).removeClass('description').addClass('description_stuffs');
463                        $('.titrePage + div', $layerShow).addClass('blockConteneur');
464                        $('.myHomePage_links a[href="index.php?/contact"]', $layerShow).addClass('slide');
465                };
466               
467                function _titre_page() {
468                        var $layerShow  = $('body').data('layerShow'),
469                                $titre          = $('#content .titrePage h2',$layerShow).first().text(),
470                                $titre          = $titre.substring($titre.lastIndexOf("/")).replace("/","");
471                        $('#content .titrePage h2',$layerShow).first().replaceWith("<h2>"+ $titre +"</h2>");
472                       
473                        if (($titre.indexOf("[")>=0)) {
474                                var $titreTab   = $titre.substring(0,$titre.indexOf("[",1));
475                        }else{
476                                var $titreTab   = $titre;
477                        };
478                        $('.sld_tab',$layerShow).text($titreTab);
479               
480                        $('.browsePath a',$layerShow).remove();
481                        var $titre              = $('.browsePath',$layerShow).text(),
482                                $titre          = $titre.substring($titre.lastIndexOf("/")).replace("/","").replace("[","").replace("]","");
483                        $('.browsePath',$layerShow).replaceWith("<h2>"+ $titre +"</h2>");
484                };
485               
486                function _scrollbar() {
487                        var $layerShow  = $('body').data('layerShow'),
488                                $settings       = {     verticalDragMinHeight: 100,
489                                                                verticalDragMaxHeight: 100,
490                                                                autoReinitialise: true
491                                                        };
492                        var $pane               = $('.scrollpane', $layerShow).jScrollPane($settings);
493                };
494               
495                function _display_menu() {
496                        var $layerShow  = $('body').data('layerShow');
497                        if($layerShow.attr('id') != ('layer-0')) { 
498                                $layerShow.find('#menubar').remove();
499                                $layerShow.find('#theHeader').addClass('headbord')
500                        };
501                        $('#theIdentificationPage #menu').remove();
502                };
503               
504                function _content_size(){
505                        var $layerShow  = $('body').data('layerShow'),
506                                $headerH        = $('#theHeader', $layerShow).height(),
507                                $headerBar      = $('.imageHeaderBar', $layerShow).height(),   
508                                $copyright      = $('#copyright', $layerShow).height(),
509                                $imageToolBar = $('.imageToolBar', $layerShow).height()
510                                $w_mh           = $(window).height() - ($headerH + $headerBar + $copyright +$imageToolBar + 50 ) + 'px';
511                        $('#content',$layerShow).css({minHeight: $w_mh});
512                };
513
514                function _piwitheme_link(){
515                        var $layerShow  = $('body').data('layerShow');
516                        var $link               = ' - theme by <a href="http://piwitheme.fr" target="_blank">piwitheme</a>';
517                        $('#copyright', $layerShow).append($link);
518                };
519
520                function _rate_star(){
521                        $('.rateButton').attr('value','');
522                        if ($('.rateButton [type="button"]').length){
523                                var rate        = $('.rateButtonSelected').attr('title'),
524                                        nth             = ':nth-child(-n+' + rate + ')';
525                                $('.rateButton' + nth).addClass('rateButtonFull');
526                        }
527                }
528               
529                function _imageInfo() {
530                        $('.imageInfo a').each(function(){
531                                var text = $(this).text();
532                                $(this).wrap($('<span />').html(text)).remove();
533                        })
534                };
535               
536                function _load_slideshow($href,$slideW) {
537                        $('#slideshow').empty().addClass('slideloader');
538                        if (!$('#slideshow').hasClass('slideshowReady')) {
539                                $.getScript('themes/Slide/js/slideshow.js', function(){
540                                        $('#slideshow').addClass('slideshowReady');
541                                });
542                        };
543                       
544                        $.ajax({
545                                url     : $href,
546                                success : function(html){
547                                        var $next       = $(html).find('.pwg-button-icon-right').attr('href'),
548                                                $title  = $(html).find('#imageHeaderBar h2').text(),
549                                                $img    = $(html).find('#theImage #imgContent').data('src'),
550                                                $img_h  = $(html).find('#theImage #imgContent').data('height'),
551                                                $img_w  = $(html).find('#theImage #imgContent').data('width');
552                                               
553                                        _stock_img($img,$title,$img_h,$img_w);
554                                        if(typeof $next != "undefined"){
555                                                _load_slideshow($next,$slideW)
556                                        }else{
557                                                $('#slideshow').removeClass('slideloader').slideshow({
558                                                        imgs                            : $slideshow,
559                                                        autoPlay                        : true,
560                                                        speed                           : 3000,
561                                                        height                          : $w_h,
562                                                        width                           : $slideW - 40,
563                                                        navType                         : 'thumb',
564                                                        styleSlideshow          : 'Fade',
565                                                        thumb_always            : false,
566                                                        thumb_width                     : 100,
567                                                        thumb_height            : 80,
568                                                })
569                                        };
570                                }       
571                        })
572                };
573
574                function _stock_img($href,$title,$height,$width){
575                        var $img = {src : $href  , title : $title , descr : $title , height : $height , width : $width};
576                        $slideshow.push($img);
577                };
578               
579                function _tabs_dragbar() {
580                        var $layerShow  = $('body').data('layerShow');
581                        $('.tab',$layerShow).fadeOut(1000).css("cursor","default");
582                        $('.jspDrag',$layerShow).css("cursor","pointer");                       
583                        $('.jspVerticalBar',$layerShow).fadeIn(1000)
584                };
585               
586                function _dragbar_tabs() {
587                        var $layerPrev  = $('body').data('layerPrev');
588                        if (typeof ($layerPrev) != 'undefined') {
589                                $('.tab',$layerPrev).fadeIn(1000).css("cursor","pointer");
590                                $('.jspDrag',$layerPrev).css("cursor","default");                       
591                                $('.jspVerticalBar',$layerPrev).fadeOut(1000)
592                        }
593                };
594               
595                function _close($tabClick) {
596                        var $layerBack  = $tabClick.parent(),
597                                $layerShow      = $('body').data('layerShow'),
598                                $newI           = $layerBack.attr('id'),
599                                $newI           = $newI.substring($newI.lastIndexOf("-")).replace("-","");
600
601                        $('body').data('layerShow', $layerBack);
602                        _tabs_dragbar();
603                        $layerShow.animate({left: $w_w}, 1000,function(){
604                                if($('#slideshow').length){
605                                        var $inter              = $('#slideshow').data('e').interval;
606                                        $slideshow              = [];
607                                        clearTimeout($inter);
608                                };
609                                $layerBack.nextAll('.pageslide').remove();
610                                var $layerPrev = $layerBack.prev
611                        });
612                        $layerBack.css({right:'auto'}).animate({marginLeft:($newI * 40)}, 1000);
613                        i                       = $newI;
614                        var     $layerPrev      = $('#layer-' + (i - 1));
615                        $('body').data( 'i',i);         
616                        $('body').data('layerPrev', $layerPrev)
617                };
618               
619                function _pushstate($url) {
620                        window.top.history.pushState({ key: i }, 'titre', $url)
621                        window.onpopstate = function(e){
622                                if (!e.state || e.state.key < i) {
623                                        $layerPrev = $('body').data('layerPrev');
624                                        _close($('.tab',$layerPrev))
625                                } else {
626                                        i++;
627                                        var $url = window.location;
628                                        _load($url);   
629                                }
630                        }
631                };
632               
633                function setPrivacyLevel(rootUrl, id, level) {
634                        var y = new PwgWS(rootUrl);
635                        y.callService(
636                                "pwg.images.setPrivacyLevel", {image_id: id, level:level} ,
637                        {
638                                method: "POST",
639                                onFailure: function(num, text) { alert(num + " " + text); },
640                                onSuccess: function(result) {
641                                          $('#privacyLevelBox .switchCheck').hide();
642                                          $('#levelCheck'+level).show();
643                                }
644                        });
645                };
646
647                function _rem_ed(e) {
648                        var $href = e.attr('href');
649                        $.ajax({ 
650                                url             : $href, 
651                                success : function(html){
652                                _comment_reload(html)
653                                }
654                        });
655                };     
656                               
657                $.fn.valid_comment = function(){       
658                        var addcom      = $(this).parents('form'),
659                                formp   = addcom.children('p'),
660                                contid  = $('#contentid'),
661                                contval = contid.val(),
662                                contlen = contid.length,
663                                aut             = $('#author'),
664                                autval  = aut.val(),
665                                autlen  = aut.length,
666                                em              = $('#email'),
667                                emval   = em.val(),
668                                emlen   = em.length,
669                                emregl  = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/,
670                                href    = addcom.attr('action'),
671                                framehref= href;
672                        formp.children().each(function(){
673                                $(this).removeClass('requi');
674                        });
675                        $.ajax({           
676                                url             : href, 
677                                type    : addcom.attr('method'), 
678                                data    : addcom.serialize(),
679                                error   : function (xhr, ajaxOptions, thrownError) {
680                                        var e           = (xhr.responseText),
681                                                e               = e.substring(e.indexOf('<div class="errors">')),
682                                                e               = e.substring(e.indexOf('<li>') , e.indexOf('</ul>')),
683                                                reg     = new RegExp("(<li>)","g"),
684                                                rege    = new RegExp("(</li>)","g"),
685                                                inf             = e.substring(e.indexOf('<li>'),e.lastIndexOf('</li>')).replace(reg,'').replace(rege,'');
686                                        _message(inf);
687                                },
688                                success : function(html){
689                                        var inf         = $(html).find('.infos li').text();
690                                        if(href.indexOf('&')>=0){href = href.substring(0,href.indexOf('&'))}
691                                        _message(inf);
692                                        _comment_reload(html);
693                                }                       
694                        });
695                };
696               
697                function _comment_reload(html){
698                        var $com                = $(html).find('#comments'),
699                                $layerShow      = $('body').data('layerShow');
700                        $('#comments', $layerShow).replaceWith($com);
701                };
702
703                function _message(inf) {
704                        if($('#msgBox').length==0){
705                                $('body').append($('<div />').attr('id','msgBox').append($('<div />').attr('id','msgBoxCom'))).fadeIn();
706                        } else {
707                                $('#msgBox').fadeIn()
708                        };
709                        $('#msgBoxCom').text(inf);
710                        $('#msgBox').delay(5000).fadeOut();                     
711                };
712
713        });
714})(jQuery);
Note: See TracBrowser for help on using the repository browser.