$.fn.uaFloater_Contents = function() {//sequential operation. EV_INIT -> CLEAR -> LOAD. Initially invisible. When opertion finished -> EV_NEXT this. on(EV_SET,function(ev) {//initial load. Store info locvally. => EV_SHOW ev.stopImmediatePropagation(); //uaFloater passes only data $(this). data("idSnippet",ev.uaData.data.id). trigger($.Event(EV_NEXT,{uaData:{info:EV_SET}})); }). on(EV_RESPONSE,function(ev) {//data from requests such as EV_CLICKED or EV_SEARCH ev.stopImmediatePropagation(); pSnippet.trigger($.Event(EV_RESPONSE,{uaData:ev.uaData})); }). on(EV_LOAD,function(ev) {//load new page ev.stopImmediatePropagation(); //load strData. When doen => EV_LOAD $(this).load('pages/floater/' + $(this).data("idSnippet") + EXTENSION,function(pData) { $.getScript('pages/floater/js/'+ $(this).data("idSnippet")+'.js',function( e, jqxhr, settings, exception ) { pSnippet = $("#idSnippet",meContent_Floater).theSnippet(). on(EV_EXTERN,function(ev) { ev.stopImmediatePropagation(); meContent_Floater.trigger($.Event(EV_EXTERN,{uaData:ev.uaData})); }); $(meContent_Floater).trigger($.Event(EV_NEXT,{uaData:{info:EV_LOAD}})); }); }); }). on(EV_CLEAR,function(ev) {//clear contents ev.stopImmediatePropagation(); $(this).html('').trigger($.Event(EV_NEXT,{uaData:{info:EV_CLEAR}})); }). on(EV_SHOW,function(ev) {//show/hide ev.stopImmediatePropagation(); switch(ev.uaData.data.bShow) { case false://hide switch(parseInt($(this).css('opacity'))) { case 0: $(this).trigger($.Event(EV_NEXT,{uaData:{info:EV_SHOW, data:{bShow:false}}})); break; default: $(this).animate({ width: 0, height: 0 },"fast", function() { $(this).trigger($.Event(EV_NEXT,{uaData:{info:EV_SHOW,data:{bShow:false}}})); }); break; };//switch(parseInt($(this).css('opacity'))) break; default://show $(this).animate({ width: '100%', height: '100%' },"fast", function() { $(this).trigger($.Event(EV_NEXT,{uaData:{info:EV_SHOW,data:{bShow:true}}})); }); break; };//switch(ev.uaData.data.bShow) }). on(EV_NEXT,function(ev) { ev.stopImmediatePropagation(); switch(ev.uaData.info) { case EV_SET: $(this).trigger($.Event(EV_SHOW,{uaData:{data:{bShow:false}}})); break; case EV_SHOW: switch(ev.uaData.data.bShow) { case false: $(this).trigger(EV_CLEAR); break; default://request fro data when floater viewable $(this).trigger($.Event(EV_EXTERN,{uaData:{info:EV_CLICKED, data:{id:$(this).data("idSnippet")}}})); break; };//switch(ev.uaData.data.bShow) break; case EV_CLEAR: $(this).trigger(EV_LOAD); break; case EV_LOAD://trigger request for data from Aura DB $(this).trigger($.Event(EV_SHOW,{uaData:{data:{bShow:true}}})); //$(this).trigger($.Event(EV_RESPONSE,{uaData:{info:EV_CLICKED, data:{id:$(this).data("idSnippet")}}})); break; default: break; }; }); const meContent_Floater = this; let pSnippet = null; return this; };