[SPIP] +installation version 3.0.10
[lhc/web/www.git] / www / prive / javascript / gadgets.js
diff --git a/www/prive/javascript/gadgets.js b/www/prive/javascript/gadgets.js
new file mode 100644 (file)
index 0000000..c112535
--- /dev/null
@@ -0,0 +1,109 @@
+function init_gadgets(url_menu_rubrique){
+       jQuery('#boutonbandeautoutsite').one('mouseover',function(){
+               jQuery(this).siblings('ul').find('li:first>a').animeajax();
+               jQuery.ajax({
+                                               url: url_menu_rubrique,
+                                               success: function(c){
+                                                       jQuery('#boutonbandeautoutsite').siblings('ul').remove();
+                                                       jQuery('#boutonbandeautoutsite')
+                                                         .after(c)
+                                                               .parent().find('li').menuFocus();
+                                               }
+                                       });
+       });
+}
+function focus_zone(selecteur){
+       jQuery(selecteur).eq(0).find('a,input:visible').get(0).focus();
+       return false;
+}
+jQuery(document).ready(function(){
+       init_gadgets(url_menu_rubrique);
+       var is_open = 0;
+       jQuery.fn.menuItemOpen = function(){
+               jQuery(this)
+                       .addClass('actif')
+                       .parents('li').addClass('actif');
+               jQuery(this).siblings('li').removeClass('actif_tempo');
+               is_open = true;
+               return this;
+       }
+       jQuery.fn.menuItemClose = function(){
+               jQuery(this)
+                       .removeClass('actif_tempo');
+               is_open = (jQuery(this).parents('ul').eq(-1).find('li.actif').length>0);
+               return this;
+       }
+       // deplier le menu au focus clavier,
+       // enlever ce depliement si passage a la souris,
+       // delai de fermeture.
+       jQuery.fn.menuFocus = function(){
+               jQuery(this)
+               // le replier si un hover de souris sur un autre onglet,
+               // timer sur la fermeture des onglets pour ne pas que ca aille trop vite
+               // timer sur l'ouverture des onglets pour ne tolerer les derapages
+               .hover(
+                       function(){
+                               if (this.timerout)
+                                       clearTimeout(this.timerout);
+                               this.timerout = null;
+                               this.timerin = null;
+                               if (is_open)
+                                       jQuery(this).menuItemOpen();
+                               else {
+                                       var me = jQuery(this);
+                                       this.timerin= setTimeout(function(){
+                                               me.menuItemOpen(null);
+                                       }, 200);
+                               }
+                       }
+                       ,
+                       function(){
+                               if (this.timerin)
+                                               clearTimeout(this.timerin);
+                               this.timerin = null;
+                               if (is_open){
+                                       var me = jQuery(this).removeClass('actif').addClass('actif_tempo');
+                                       this.timerout = setTimeout(function(){
+                                               me.menuItemClose();
+                                       }, 400);
+                               }
+                       }
+               )
+               // navigation au clavier :
+               // deplier le ul enfant
+               .find('>a').focus(function(){
+                       //jQuery(this).parents('ul').find('>li.actif').removeClass('actif');
+                       jQuery(this).parents('li').addClass('actif');
+               })
+               // cacher en partant de l'onglet...
+               .blur(function(){
+                       jQuery(this).parents('li').removeClass('actif');
+               });
+               return this;
+       }
+
+       // Controler la position verticale des sous-menus
+       // pour l'instant, effectuer a chaque hover, en cas de changement de taille d'affichage par exemple
+       jQuery('#bando_navigation').hover(function(){
+               hauteur = parseInt(jQuery('#bando_navigation .largeur').height())
+                       +  parseInt(jQuery('#bando_navigation').css("padding-top"))
+                       +  parseInt(jQuery('#bando_navigation').css("padding-bottom"));
+               jQuery('#bando_navigation ul li>ul').css({'top':hauteur});
+       });
+
+       jQuery('#bando_navigation li').menuFocus();
+       jQuery('#bando_outils ul.bandeau_rubriques li').menuFocus();
+
+       jQuery('#bandeau_haut #formRecherche input').hover(function(){
+               jQuery('#bandeau_haut ul.actif').trigger('mouseout');
+       });
+       jQuery('#bando_liens_rapides a')
+               .focus(function(){
+                       jQuery('#bando_liens_rapides').addClass('actif');
+               })
+               .blur(function(){
+                       jQuery('#bando_liens_rapides').removeClass('actif');
+               });
+       if (typeof window.test_accepte_ajax != "undefined")
+               test_accepte_ajax();
+});