Advertisement
Guest User

CB Vue large

a guest
Jun 20th, 2015
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /**
  2.  * Script jquery onScreen
  3.  */
  4. $(function()
  5. {
  6.  
  7.     /**
  8.      * Afficher le bouton toggle
  9.      * true : afficher
  10.      * false : cacher
  11.      */
  12.     var show_button_toggle = true;
  13.  
  14.     var tmp_to = null;
  15.     var can_save = typeof window.openDatabase != 'undefined';
  16.     var can_localstorage = typeof window.localStorage != 'undefined';
  17.     var $filtres = $('.headerboucle .filtre');
  18.     var use_the_script = true;  
  19.  
  20.     /**
  21.      * Créer la base de données pour le cache
  22.      */
  23.     if(can_save)
  24.     {
  25.         var mydb = openDatabase("choualbox_previews", "0.1", "JESUISVUELARGE", 1024 * 1024);
  26.         mydb.transaction(function (t) {
  27.             t.executeSql("CREATE TABLE IF NOT EXISTS preview (id VARCHAR, html TEXT, date INT)");
  28.  
  29.             // Supprimer les previews de plus de deux jours
  30.             var d = new Date();
  31.             d.setDate(d.getDate() - 2);
  32.             t.executeSql("DELETE FROM preview WHERE date < " + d.getTime());
  33.         });
  34.     }
  35.  
  36.     /**
  37.      * Récupérer l'option du toggle
  38.      */
  39.     if(show_button_toggle && can_localstorage)
  40.     {
  41.         var use_the_script_lv = localStorage.getItem('vuelarge_enable');
  42.         if(use_the_script_lv !== null)
  43.         {
  44.             use_the_script = use_the_script_lv == 1;
  45.         }
  46.     }
  47.  
  48.     /**
  49.      * Afficher les filtres
  50.      */
  51.     if(show_button_toggle && can_localstorage)
  52.     {
  53.         var $new_filtres_container = $('<div style="float:right;"></div>');
  54.  
  55.         var button_toggle = $('<a style="cursor:pointer">' + (use_the_script ? 'Large' : 'Small') + '</a>');
  56.         button_toggle.click(function()
  57.         {
  58.             localStorage.setItem('vuelarge_enable',use_the_script ? 0 : 1);
  59.             location.reload(true);
  60.             return false;
  61.         });
  62.  
  63.         $new_filtres_container.append(button_toggle);
  64.    
  65.         $filtres.prepend($new_filtres_container);
  66.     }
  67.  
  68.     /**
  69.      * Lancer une première fois le script sans besoin de scroller
  70.      */
  71.     show_previews();
  72.  
  73.  
  74.     /**
  75.      * Rechercher les box visibles sur l'écran et afficher l'aperçu sur la première
  76.      */
  77.     function show_previews()
  78.     {
  79.         if(!use_the_script) return;
  80.        
  81.         var boxes = $('.box_boucle:not(.preview_visible)');
  82.        
  83.         boxes.each(function() {
  84.             preview($( this ));
  85.         });      
  86.     }
  87.  
  88.  
  89.     /**
  90.      * Récupérer et afficher l'aperçu
  91.      */
  92.     function preview(box)
  93.     {
  94.         // Ajouter une class pour ne pas répéter l'action
  95.         box.addClass('preview_visible');
  96.  
  97.         var preview_link = box.find('.medias .openurl');
  98.         var url_preview = preview_link.data('target');
  99.         var id = preview_link.attr('id');
  100.         var frame = box.find('.openurl-frame');
  101.  
  102.         // Afficher la frame avec le message du chargement
  103.         frame.show();
  104.        
  105.         set_preview_box(box,frame);
  106.     }
  107.  
  108.  
  109.     /**
  110.      * Nettoyer la box pour en retirer les éléments superflus
  111.      */
  112.     function clean_box(box)
  113.     {
  114.         box.find('.medias .openurl, .infos img.play-overlay, > a > img').remove();
  115.     }
  116.  
  117.  
  118.     /**
  119.      * Modifier le code HTML et l'afficher dans la frame
  120.      */
  121.     function set_preview_box(box,frame)
  122.     {      
  123.         var images = box.find($('img'));
  124.         var url = (box.find($('.medias a'))[0]).getAttribute('href');
  125.        
  126.         if(images.length > 0)
  127.         {  
  128.             var img_preview_url = (images[0]).getAttribute('src');
  129.             var img_url = img_preview_url.replace("Img_resize", "Img");
  130.            
  131.             var prev = '';
  132.            
  133.             if(img_url.split('.').pop() == 'gif')
  134.             {
  135.                 img_url = img_url.replace("gif", "webm");
  136.                 prev = '<div style="max-width:100%;font-size: 13px;font-family: Arial;line-height: 1.4;color: #333;word-wrap: break-word;"><div class="texte"></div></div><video class="videoplayer" loop controls muted="muted" style="width:100%;"><source src="' + img_url + '" type="video/webm"></video>';
  137.             }
  138.             else
  139.                prev = '<div style="max-width:100%;font-size: 13px;font-family: Arial;line-height: 1.4;color: #333;word-wrap: break-word;"><div class="texte"></div></div><a href="' + url + '"><img src="' + img_url +'" style="width:100%;"></a>';
  140.            
  141.             frame.html(prev);
  142.         }
  143.        
  144.          // Nettoyer
  145.         clean_box(box);
  146.     }
  147. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement