Вход Регистрация
Файл: contao-3.5.8/assets/mootools/mediabox/1.4.6/js/Quickie.js
Строк: 164
<?php
/*
---
description: MooTools wrapper to embed QuickTime movies.

license: MIT-style

authors:
- Jose Prado

requires:
  core/1.2.4: [Browser, Class.Extras, Array, Hash, Element, Element.Event]

provides:
  Quickie
  Browser.Plugins.QuickTime

...
*/
(function() {
    var 
qtEvents = ['begin', 'loadedmetadata', 'loadedfirstframe', 'canplay', 'canplaythrough',
    
'durationchange', 'load', 'ended', 'error', 'pause', 'play', 'progress', 'waiting', 'stalled',
    
'timechanged', 'volumechange'];
    
    
Quickie = new Class({
            
        Implements: [
Options, Events],
        
version: '2.1',
        
options: {/*
            onPlay: $empty,
            onStop: $empty,*/
            
id: null,
            
height: 1,
            
width: 1,
            
container: null,
            
attributes: {
                
controller: "true",
                
postdomevents: "true"
            
}
        },
        
        
initialize: function(path, options){
            
this.setOptions(options);
            
options = this.options;
            
this.id = this.options.id || 'Quickie_' + $time();
            
this.path = path;
            var 
container = options.container;
            
            
// Extra attributes
            
options.attributes = $H(options.attributes);
            
options.attributes.src = path;
            
            
// Get Browser appropriate HTML code
            
this.html = this.toHTML();
            
            if (
Browser.Engine.trident) {
                
document.getElementById(container).innerHTML = this.html;
                
this.quickie = document.getElementById(this.id);
                
this.ieFix.delay(10, this);
            } else {
                var 
wrapper = document.createElement('div');
                
wrapper.innerHTML = this.html;
                
this.quickie = wrapper.firstChild;
                
this.transferEvents();
                
document.id(container).empty();
                
document.getElementById(container).appendChild(this.quickie);
            }
        },
        
        
toHTML: function() {
            if (!
this.html) {
                var 
attributes = this.options.attributes,
                    
height     = (attributes.controller == "true") ? this.options.height + 16 : this.options.height,
                    
width      = this.options.width,
                    
element    = '';
                      
                if (
Browser.Engine.trident) {                    
                    
element = '<object id="'+this.id+'" ';
                    
element += 'width="'+width+'" ';
                    
element += 'height="'+height+'" ';
                    
element += 'classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" ';
                    
element += 'style="behavior:url(#qt_event_source);" ';
                    
element += 'codebase="http://www.apple.com/qtactivex/qtplugin.cab">';
                    
                    
attributes.each(function(value, key) {
                        
element += '<param name="'+key+'" value="'+value+'" />';
                    });
                    
                    
element += '</object>';
                } else {
                    
element = '<embed id="'+this.id+'" ';
                    
element += 'width="'+width+'" ';
                    
element += 'height="'+height+'" ';
                    
element += 'pluginspage="http://www.apple.com/quicktime/download/" ';
                    
                    
attributes.each(function(value, key) {
                        
element += key+'="'+value+'" ';
                    });
                    
                    
element += '/>';
                }
                
this.html = element;
            }
            return 
this.html;
        },
        
        
ieFix: function() {
            
document.getElementById(this.id).SetResetPropertiesOnReload(false);
            
document.getElementById(this.id).SetURL(this.path);
            
this.transferEvents.delay(10, this);
        },
        
        
transferEvents: function() {
            var 
element = this.quickie;
            
            
qtEvents.each(function(evType) {
                
addQTEvent(element, evType, this.fireEvent.pass(evType, this));
            }.
bind(this));
        }
        
    });

    function 
addQTEvent(el, evType, fn, useCapture) {
        
evType = 'qt_' + evType;
        if (
el.addEventListener) {
            
el.addEventListener(evType, fn, useCapture);
            return 
true;
        } else if (
el.attachEvent) {
            var 
r = el.attachEvent('on' + evType, fn);
            return 
r;
        } else {
            
el[evType] = fn;
        }
    }

})();

Browser.Plugins.QuickTime = (function(){
    if (
navigator.plugins) {
        for (var 
i = 0, l = navigator.plugins.length; i < l; i++) {
            if (
navigator.plugins[i].name.indexOf('QuickTime') >= 0) {
                return 
true;
            }
        }
    } else {
        try { var 
test = new ActiveXObject('QuickTime.QuickTime'); }
        catch(
e) {}
        
        if (
test) { return true; }
    }
    return 
false;
})();
?>
Онлайн: 2
Реклама