Вход Регистрация
Файл: admin/js/tabs.js
Строк: 277
<?php
var varienTabs = new Class.create();

varienTabs.prototype = {
    
initialize : function(containerIddestElementId,  activeTabIdshadowTabs){
        
this.containerId    containerId;
        
this.destElementId  destElementId;
        
this.activeTab null;

        
this.tabOnClick     this.tabMouseClick.bindAsEventListener(this);

        
this.tabs = $$('#'+this.containerId+' li a.tab-item-link');

        
this.hideAllTabsContent();
        for(var 
tab in this.tabs){
            
Event.observe(this.tabs[tab],'click',this.tabOnClick);
            if($(
this.destElementId)){
                var 
tabContentElement = $(this.getTabContentElementId(this.tabs[tab]));
                if(
tabContentElement && tabContentElement.parentNode.id != this.destElementId){
                    $(
this.destElementId).appendChild(tabContentElement);
                    
tabContentElement.container this;
                    
tabContentElement.statusBar this.tabs[tab];
                    
tabContentElement.tabObject  this.tabs[tab];
                    
this.tabs[tab].contentMoved true;
                    
this.tabs[tab].container this;
                    
this.tabs[tab].show = function(){
                        
this.container.showTabContent(this);
                    }
                    if(
varienGlobalEvents){
                        
varienGlobalEvents.fireEvent('moveTab', {tab:this.tabs[tab]});
                    }
                }
            }
            if (
this.tabs[tab].id && shadowTabs && shadowTabs[this.tabs[tab].id]) {
                
this.tabs[tab].shadowTabs shadowTabs[this.tabs[tab].id];
            }
        }

        
this.displayFirst activeTabId;
        
Event.observe(window,'load',this.moveTabContentInDest.bind(this));
    },

    
moveTabContentInDest : function(){
        for(var 
tab=0tab<this.tabs.lengthtab++){
            if($(
this.destElementId) &&  !this.tabs[tab].contentMoved){
                var 
tabContentElement = $(this.getTabContentElementId(this.tabs[tab]));
                if(
tabContentElement && tabContentElement.parentNode.id != this.destElementId){
                    $(
this.destElementId).appendChild(tabContentElement);
                    
tabContentElement.container this;
                    
tabContentElement.statusBar this.tabs[tab];
                    
tabContentElement.tabObject  this.tabs[tab];
                    
this.tabs[tab].container this;
                    
this.tabs[tab].show = function(){
                        
this.container.showTabContent(this);
                    }
                    if(
varienGlobalEvents){
                        
varienGlobalEvents.fireEvent('moveTab', {tab:this.tabs[tab]});
                    }
                }
            }
        }
        if (
this.displayFirst) {
            
this.showTabContent($(this.displayFirst));
            
this.displayFirst null;
        }
    },

    
getTabContentElementId : function(tab){
        if(
tab){
            return 
tab.id+'_content';
        }
        return 
false;
    },

    
tabMouseClick : function(event) {
        var 
tab Event.findElement(event'a');

        if ((
tab.href.indexOf('#') != tab.href.length-1)
            && !(
Element.hasClassName(tab'ajax'))
        ) {
            
location.href tab.href;
        }
        else {
            
this.showTabContent(tab);
        }
        
Event.stop(event);
    },

    
hideAllTabsContent : function(){
        for(var 
tab in this.tabs){
            
this.hideTabContent(this.tabs[tab]);
        }
    },

    
showTabContentImmediately : function(tab) {
        
this.hideAllTabsContent();
        var 
tabContentElement = $(this.getTabContentElementId(tab));
        if (
tabContentElement) {
            
Element.show(tabContentElement);
            
Element.addClassName(tab'active');
            if (
tab.shadowTabs && tab.shadowTabs.length) {
                for (var 
k in tab.shadowTabs) {
                    
this.loadShadowTab($(tab.shadowTabs[k]));
                }
            }
            
Element.removeClassName(tab'notloaded');
            
this.activeTab tab;
        }
        if (
varienGlobalEvents) {
            
varienGlobalEvents.fireEvent('showTab', {tab:tab});
        }
    },

    
showTabContent : function(tab) {
        var 
tabContentElement = $(this.getTabContentElementId(tab));
        if (
tabContentElement) {
            if ((
tabContentElement.innerHTML == '')
                && (
tab.href.indexOf('#') != tab.href.length-1)
                && (
Element.hasClassName(tab'ajax'))
            ) {
                new 
Ajax.Updater(tabContentElement.idtab.href, {
                     
onComplete : function () {
                         
this.showTabContentImmediately(tab)
                     }.
bind(this),
                     
evalScripts true
                
});
            }
            else {
                
this.showTabContentImmediately(tab);
            }
        }
    },

    
loadShadowTab : function(tab) {
        var 
tabContentElement = $(this.getTabContentElementId(tab));
        if (
tabContentElement && Element.hasClassName(tab'ajax') && Element.hasClassName(tab'notloaded')) {
            new 
Ajax.Updater(tabContentElement.idtab.href, {
                
onComplete : function () {
                    
Element.removeClassName(tab'notloaded');
                }.
bind(this),
                
evalScripts true
            
});
        }
    },

    
hideTabContent : function(tab){
        var 
tabContentElement = $(this.getTabContentElementId(tab));
        if($(
this.destElementId) && tabContentElement){
           
Element.hide(tabContentElement);
           
Element.removeClassName(tab'active');
        }
        if(
varienGlobalEvents){
            
varienGlobalEvents.fireEvent('hideTab', {tab:tab});
        }
    }
}
?>
Онлайн: 1
Реклама