/* SCOPE POP BOX */ (function(){ /* PopBox (Class) */ PopBox = { /* Init() * * @string: Id de l'élément conteneur * * Initialise la PopBox */ IsOpen:false, IdContainer:"", AutoCenter:true, HtmlContainer:Array(), TabScrollEvent:Array(), Init:function(IdContent) { // Evenement de la PopBox Event.observe('PopBox','click',PopBox.Close); Event.observe(window,'scroll',PopBox.Center); Event.observe('PopBoxClose','click',PopBox.Close); Event.observe('PopBoxContent','click',function(event){ event.stopPropagation();}); }, /* Open() * * @string : Id de l'élément conteneur * @string : Class de l'élément conteneur * * Ouvre la PopBox */ OpenCallback:null, Open:function(IdContainer,ClassContainer) { // Changement de l'état PopBox.IsOpen = true; // PopBox jamais mise en mémoire if(Object.isElement($(IdContainer))) { // Mise en mémoire du contenu de la PopBox PopBox.HtmlContainer[IdContainer] = $(IdContainer).innerHTML; // Supppression de l'élément $(IdContainer).remove(); } // Enregistrement de l'id du container PopBox.IdContainer = IdContainer; // Remplacement du contenu $("PopBoxContent").innerHTML = PopBox.HtmlContainer[IdContainer]; // Changement de class $('PopBoxContainer').classNames().toArray().each(function(name, index) { $('PopBoxContainer').removeClassName(name); }); $("PopBoxContainer").addClassName(ClassContainer); // Affichage $("PopBox").appear( { duration:0.5, afterSetupInternal:function() { $('PopBoxContainer').setStyle({width:$('PopBoxContent').firstDescendant().getWidth()+'px'}); $('PopBoxContainer').setStyle({height:$('PopBoxContent').firstDescendant().getHeight()+'px'}); }, afterFinish:function(){ PopBox.Center(); } }); // Exécute le callback if(PopBox.OpenCallback!=null) PopBox.OpenCallback.call(); }, /* Center() * * Centre la PopBox */ Center:function() { // Si la PopBox est ouverte if(PopBox.IsOpen && PopBox.AutoCenter) { // Recherche des dimensions / positions de la PopBox var PopBoxHeight = $("PopBoxContainer").getHeight(); var PopBoxMiddle = (PopBoxHeight/2); // Recherche des dimensions / positions de la Window visible var WindowTop = document.viewport.getScrollOffsets().top; var WindowHeight = document.viewport.getHeight(); var WindowMiddle = (WindowHeight/2); // Test si la PopBox est visible entierement if(PopBoxHeight