Вход Регистрация
Файл: CLOUDME-HTML/phpMailer/examples/scripts/shAutoloader.js
Строк: 78
<?php
(function() {

var 
sh SyntaxHighlighter;

/**
 * Provides functionality to dynamically load only the brushes that a needed to render the current page.
 *
 * There are two syntaxes that autoload understands. For example:
 *
 * SyntaxHighlighter.autoloader(
 *     [ 'applescript',          'Scripts/shBrushAppleScript.js' ],
 *     [ 'actionscript3', 'as3', 'Scripts/shBrushAS3.js' ]
 * );
 *
 * or a more easily comprehendable one:
 *
 * SyntaxHighlighter.autoloader(
 *     'applescript       Scripts/shBrushAppleScript.js',
 *     'actionscript3 as3 Scripts/shBrushAS3.js'
 * );
 */
sh.autoloader = function()
{
    var list = 
arguments,
        
elements sh.findElements(),
        
brushes = {},
        
scripts = {},
        
all SyntaxHighlighter.all,
        
allCalled false,
        
allParams null,
        
i
        
;

    
SyntaxHighlighter.all = function(params)
    {
        
allParams params;
        
allCalled true;
    };

    function 
addBrush(aliasesurl)
    {
        for (var 
0aliases.lengthi++)
            
brushes[aliases[i]] = url;
    };

    function 
getAliases(item)
    {
        return 
item.pop
            
item
            
item.split(/s+/)
            ;
    }

    
// create table of aliases and script urls
    
for (0< list.lengthi++)
    {
        var 
aliases getAliases(list[i]),
            
url aliases.pop()
            ;

        
addBrush(aliasesurl);
    }

    
// dynamically add <script /> tags to the document body
    
for (0elements.lengthi++)
    {
        var 
url brushes[elements[i].params.brush];

        if(
url && scripts[url] === undefined)
        {
            if(
elements[i].params['html-script'] === 'true')
            {
                if(
scripts[brushes['xml']] === undefined) {
                    
loadScript(brushes['xml']);
                    
scripts[url] = false;
                }
            }

            
scripts[url] = false;
            
loadScript(url);
        }
    }

    function 
loadScript(url)
    {
        var 
script document.createElement('script'),
            
done false
            
;

        
script.src url;
        
script.type 'text/javascript';
        
script.language 'javascript';
        
script.onload script.onreadystatechange = function()
        {
            if (!
done && (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete'))
            {
                
done true;
                
scripts[url] = true;
                
checkAll();

                
// Handle memory leak in IE
                
script.onload script.onreadystatechange null;
                
script.parentNode.removeChild(script);
            }
        };

        
// sync way of adding script tags to the page
        
document.body.appendChild(script);
    };

    function 
checkAll()
    {
        for(var 
url in scripts)
            if (
scripts[url] == false)
                return;

        if (
allCalled)
            
SyntaxHighlighter.highlight(allParams);
    };
};

})();
?>
Онлайн: 1
Реклама